解决Python3读取Python2存储的pickle文件报错问题
本文介绍在Python3环境中读取由Python2生成的pickle序列化文件时,因默认编码差异导致的UnicodeDecodeError错误。通过指定encoding='iso-8859-1'参数,可成功加载数据,解决跨版本兼容性问题。
在使用Python3.5处理一个名为xxx.pk的序列化文件时,如果该文件是在Python2.7环境下生成的,直接使用Python3进行读取会触发特定的报错信息。
import pickle
picklefile=open('2ohsumed_wmd_d.pk','rb')
data=pickle.load(picklefile)
print (data)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 11: ordinal not in range(128)
具体的解决策略如下:
import pickle
picklefile=open('2ohsumed_wmd_d.pk','rb')
data=pickle.load(picklefile,encoding='iso-8859-1')
print (data)
上述内容即为解决Python3读取Python2存储的pickle文件问题的完整方案,希望能为读者提供有效的参考,并欢迎大家继续支持本站获取更多技术分享。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









