我閱讀并使用了一個大文件(較小的塊不會給我錯誤)并閱讀它。但是當我嘗試使用時: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
提交
取消