解决Python3读取Python2存储的pickle文件报错问题

半杯拿铁
半杯拿铁
发布时间:2026-10-13 | 7人浏览过
原创

本文介绍在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文件问题的完整方案,希望能为读者提供有效的参考,并欢迎大家继续支持本站获取更多技术分享。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表