用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备份文件以及mysql数据库的脚本代码
Jun 10 Python
pyside写ui界面入门示例
Jan 22 Python
python实现多线程采集的2个代码例子
Jul 07 Python
Python 专题六 局部变量、全局变量global、导入模块变量
Mar 20 Python
python中安装模块包版本冲突问题的解决
May 02 Python
深入理解Python3 内置函数大全
Nov 23 Python
python中的随机函数random的用法示例
Jan 27 Python
Python实现正则表达式匹配任意的邮箱方法
Dec 20 Python
Tensorflow实现酸奶销量预测分析
Jul 19 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
Python实现CAN报文转换工具教程
May 05 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 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大批量数据操作时临时调整内存与执行时间的方法
2011/04/20 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
2015/07/31 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
Laravel5.5以下版本中如何自定义日志行为详解
2018/08/01 PHP
PHP基于openssl实现非对称加密代码实例
2020/06/19 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
JavaScript语句可以不以;结尾的烦恼
2007/03/08 Javascript
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
JS中处理与当前时间间隔的函数代码
2012/05/23 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
jQuery实现点击水纹波动动画
2016/04/10 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
AngularJS表单提交实例详解
2017/02/18 Javascript
Vue弹出菜单功能的实现代码
2018/09/12 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
js对象数组和对象的使用实例详解
2019/08/27 Javascript
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
python numpy存取文件的方式
2020/04/01 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
门卫岗位职责
2013/11/15 职场文书
问卷调查计划书
2014/01/10 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
优秀驾驶员先进事迹材料
2014/05/04 职场文书
爱心倡议书范文
2014/05/12 职场文书
详解JS ES6编码规范
2021/05/07 Javascript
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python