将文件添加到字典并获取值错误

我阅读并使用了一个大文件(较小的块不会给我错误)并阅读它。但是当我尝试使用时:


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)

我尝试使用文件的小块,它在那里工作。问题出在特定的输入条目上。我该如何调试,以便我可以从文件中删除该行。


慕哥6287543
浏览 126回答 2
2回答

白衣染霜花

“我如何调试,以便我可以从文件中删除该行? ”您不必在文件中删除它。你可以像这样阅读时跳过它kv_pairs = [kv.split(":",1) for kv in tokens[6:] if ":" in kv]这将确保tokens[6:]没有键值对(由“:”分隔)的任何成员都将被跳过。

慕无忌1623718

这意味着其中至少有一个字符串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 ':'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python