我阅读并使用了一个大文件(较小的块不会给我错误)并阅读它。但是当我尝试使用时:kv_pairs = [kv.split(":",1) for kv in tokens[6:]]features = {k: float(v) for (k, v) in kv_pairs}我收到错误:{k: float(v) for (k, v) in kv_pairs}ValueError: not enough values to unpack (expected 2, got 1)我尝试使用文件的小块,它在那里工作。问题出在特定的输入条目上。我该如何调试,以便我可以从文件中删除该行。
2 回答

白衣染霜花
TA贡献1796条经验 获得超10个赞
“我如何调试,以便我可以从文件中删除该行? ”您不必在文件中删除它。你可以像这样阅读时跳过它
kv_pairs = [kv.split(":",1) for kv in tokens[6:] if ":" in kv]
这将确保tokens[6:]
没有键值对(由“:”分隔)的任何成员都将被跳过。

慕无忌1623718
TA贡献1744条经验 获得超4个赞
这意味着其中至少有一个字符串tokens[6:]
不包含 a :
,例如空字符串或其他内容。
要删除违规行,请更改:
kv_pairs = [kv.split(":",1) for kv in tokens[6:]]
到:
kv_pairs = [kv.split(":",1) for kv in tokens[6:] if ':' in kv] # filter out the strings without a ':'
添加回答
举报
0/150
提交
取消