用python3读取python2的pickle数据方式


Posted in Python onDecember 25, 2019

问题一:TypeError: a bytes-like object is required, not 'str'

解决:该问题属于Python3和Python2的字符串兼容问题,数据文件是在Python2下序列化的,使用Python3读取时,需要将‘str'转化为'bytes'。

picklefile=open('XXX.pkl','r')
 
class StrToBytes:
  def __init__(self, fileobj):
    self.fileobj = fileobj
  def read(self, size):
    return self.fileobj.read(size).encode()
  def readline(self, size=-1):
    return self.fileobj.readline(size).encode()
 
data=pickle.load(StrToBytes(picklefile))

问题二:UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 44: ordinal not in range(128)

解决:加上encoding编码方式

pickle.load(StrToBytes(data_file),encoding='iso-8859-1')

附上完整的读取代码:

import pickle
class StrToBytes:
  def __init__(self, fileobj):
    self.fileobj = fileobj
  def read(self, size):
    return self.fileobj.read(size).encode()
  def readline(self, size=-1):
    return self.fileobj.readline(size).encode()
 
read = open('XXX.pkl', 'r')
data = pickle.load(StrToBytes(read),encoding='iso-8859-1')
  
print(data)

以上这篇用python3读取python2的pickle数据方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python装饰器基础详解
Mar 09 Python
Python实现的手机号归属地相关信息查询功能示例
Jun 08 Python
Python使用base64模块进行二进制数据编码详解
Jan 11 Python
python使用KNN算法手写体识别
Feb 01 Python
Python with语句上下文管理器两种实现方法分析
Feb 09 Python
通过python实现windows桌面截图代码实例
Jan 17 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
Pytorch 使用 nii数据做输入数据的操作
May 26 Python
python文件编写好后如何实践
Jul 07 Python
在Windows下安装配置CPU版的PyTorch的方法
Apr 02 Python
用Python制作灯光秀短视频的思路详解
Apr 13 Python
Python编程中内置的NotImplemented类型的用法
Mar 23 Python
python文件绝对路径写法介绍(windows)
Dec 25 #Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 #Python
python 输出列表元素实例(以空格/逗号为分隔符)
Dec 25 #Python
python 定义类时,实现内部方法的互相调用
Dec 25 #Python
Python:type、object、class与内置类型实例
Dec 25 #Python
使用python实现希尔、计数、基数基础排序的代码
Dec 25 #Python
Python之Class&Object用法详解
Dec 25 #Python
You might like
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
PHP register_shutdown_function()函数的使用示例
2015/06/23 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
js+css实现打字效果
2020/06/24 Javascript
深入学习js函数的隐式参数 arguments 和 this
2019/06/24 Javascript
JS+Canvas实现五子棋游戏
2020/08/26 Javascript
线程和进程的区别及Python代码实例
2015/02/04 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
python 搜索大文件的实例代码
2019/07/08 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
EJB的激活机制
2013/10/25 面试题
药学专业毕业生求职信
2013/10/20 职场文书
高中生的自我评价
2014/03/04 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
四风问题对照检查材料思想汇报
2014/10/07 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
运动会广播稿300字
2015/08/19 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript