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

use*_*341 7 python pickle python-3.x

我正在使用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)
Run Code Online (Sandbox Code Playgroud)

rad*_*may 11

我通过将整个csv文件复制并粘贴到文本中并使用以下方法读取它来解决此问题:

with open(self.path + "/review_collection.txt", "r", encoding="utf-8") as f:
    read = f.read().splitlines()
    for row in read:
        print(row)
Run Code Online (Sandbox Code Playgroud)


Sre*_*T C 9

您可能应该为 提供编码pickle.load(f, encoding='latin1'),但请确保文件中的所有字符都遵循编码。

默认情况下,您的pickle 代码正在尝试使用“ASCII”对文件进行解码,但失败了。相反,您可以明确告诉使用哪个。从文档中看到这一点。

如果 latin1 没有解决,请尝试使用encoding='bytes',然后稍后解码所有键和值。