UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b
我使用的是 here 中的以下代码(稍作修改):
import _pickle as cPickle
def unpickle(file):
fo = open(file, 'rb')
dict = cPickle.load(fo)
fo.close()
return dict
unpickle('data_batch_1')
当我 运行 代码时,如果我使用 Python 3.5.2
:
,我会得到以下信息
Traceback (most recent call last):
File "open_batch.py", line 10, in <module>
unpickle('data_batch_1')
File "open_batch.py", line 5, in unpickle
dict = cPickle.load(fo)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 6: ordinal not in range(128)
我该如何解决这个问题?
谢谢。
因为字符编码失败
尝试使用拉丁语
cPickle.load(file, encoding='latin1')
替换:
dict = cPickle.load(fo)
在 unpickle 函数中:
dict = cPickle.load(fo, encoding='latin1')
我使用的是 here 中的以下代码(稍作修改):
import _pickle as cPickle
def unpickle(file):
fo = open(file, 'rb')
dict = cPickle.load(fo)
fo.close()
return dict
unpickle('data_batch_1')
当我 运行 代码时,如果我使用 Python 3.5.2
:
Traceback (most recent call last):
File "open_batch.py", line 10, in <module>
unpickle('data_batch_1')
File "open_batch.py", line 5, in unpickle
dict = cPickle.load(fo)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 6: ordinal not in range(128)
我该如何解决这个问题?
谢谢。
因为字符编码失败
尝试使用拉丁语
cPickle.load(file, encoding='latin1')
替换:
dict = cPickle.load(fo)
在 unpickle 函数中:
dict = cPickle.load(fo, encoding='latin1')