我正在使用python 3.5.3在Windows上实现此笔记本,并在load_vectors()呼叫上遇到了以下错误。我尝试了不同的解决方案,但没有任何解决方案。
<ipython-input-86-dd4c123b0494> in load_vectors(loc)
1 def load_vectors(loc):
2 return (load_array(loc+'.dat'),
----> 3 pickle.load(open(loc+'_words.pkl','rb')),
4 pickle.load(open(loc+'_idx.pkl','rb')))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)
我通过将整个CSV文件复制和粘贴到文本中并使用:
来解决此问题:with open(self.path + "/review_collection.txt", "r", encoding="utf-8") as f:
read = f.read().splitlines()
for row in read:
print(row)
您可能应该为pickle.load(f, encoding='latin1')
提供编码,但请确保文件中的所有字符都将遵循编码。
默认情况下,您的泡菜代码正在尝试用" ASCII"解码文件,但失败。相反,您可以明确说出要使用哪个。从文档中看到此。
如果Latin1无法解决,请尝试使用encoding='bytes'
,然后在以后解码所有键和值。
我也有相同的错误。我意识到我从左右双引号的文件中复制和粘贴文本(卷曲引号)。一旦我将其更改为标准的双重报价(")问题已解决!
请参阅引号之间的区别:https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html