Python 3 UnicodeDecodeError:'ascii' 编解码器无法解码位置 0 的字节0xe2:序号不在范围内(128)



我正在使用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

相关内容

最新更新