用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 相关文章推荐
详解appium+python 启动一个app步骤
Dec 20 Python
使用apidocJs快速生成在线文档的实例讲解
Feb 07 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
解决pyqt5中QToolButton无法使用的问题
Jun 21 Python
Numpy 中的矩阵求逆实例
Aug 26 Python
python 实现Flask中返回图片流给前端展示
Jan 09 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
Feb 17 Python
Python调用百度OCR实现图片文字识别的示例代码
Jul 17 Python
Python使用pycharm导入pymysql教程
Sep 16 Python
Python tempfile模块生成临时文件和临时目录
Sep 30 Python
如何用Python提取10000份log中的产品信息
Jan 14 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 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
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
php递归创建目录的方法
2015/02/02 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
javascript加号"+"的二义性说明
2013/03/04 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
JS+CSS实现仿触屏手机拨号盘界面及功能模拟完整实例
2015/05/16 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
python面试题小结附答案实例代码
2019/04/11 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
python opencv实现图像配准与比较
2021/02/09 Python
加拿大消费电子和手机购物网站:The Source
2017/01/28 全球购物
酒店管理毕业生自荐信
2014/05/25 职场文书
文明城市标语
2014/06/16 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
《月球之谜》教学反思
2016/02/20 职场文书
Python爬虫之爬取某文库文档数据
2021/04/21 Python
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python