用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内置数据结构与操作符的练习题集锦
Jul 01 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
Apr 26 Python
python实现读Excel写入.txt的方法
Apr 29 Python
python实现电子产品商店
Feb 26 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
python智联招聘爬虫并导入到excel代码实例
Sep 09 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
如何基于python操作excel并获取内容
Dec 24 Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 Python
Python ADF 单位根检验 如何查看结果的实现
Jun 03 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
Jun 12 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
PHP4.04简明安装
2006/10/09 PHP
PHP去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
30个最佳jQuery Lightbox效果插件分享
2011/04/11 Javascript
最新的10款jQuery内容滑块插件分享
2011/09/18 Javascript
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
web前端设计师们常用的jQuery特效插件汇总
2014/12/07 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jquery小火箭返回顶部代码分享
2015/08/19 Javascript
JavaScript生成带有缩进的表格代码
2016/06/15 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
Angular的$http与$location
2016/12/26 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python列表切片用法示例
2017/04/19 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
Python设计模式之门面模式简单示例
2018/01/09 Python
基于Django用户认证系统详解
2018/02/21 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
公认8个效率最高的爬虫框架
2020/07/28 Python
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
星级党支部申报材料
2014/05/31 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
简单通用的简历自我评价
2014/09/21 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
Python图片验证码降噪和8邻域降噪
2021/08/30 Python
如何通过一篇文章了解Python中的生成器
2022/04/02 Python