用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中title()方法的使用简介
May 20 Python
详解python3中socket套接字的编码问题解决
Jul 01 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
Dec 14 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
Python实现GUI学生信息管理系统
Apr 05 Python
python SQLAlchemy的Mapping与Declarative详解
Jul 04 Python
python自动化UI工具发送QQ消息的实例
Aug 27 Python
Python爬取豆瓣视频信息代码实例
Nov 16 Python
pandas分组聚合详解
Apr 10 Python
Python参数传递对象的引用原理解析
May 22 Python
JAVA SWT事件四种写法实例解析
Jun 05 Python
Python中读取文件名中的数字的实例详解
Dec 25 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(3)
2006/10/09 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
PHP使用递归生成文章树
2015/04/21 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
PHP脚本自动识别验证码查询汽车违章
2016/12/20 PHP
关于query Javascript CSS Selector engine
2013/04/12 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
2016/06/08 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
jquery的$().each和$.each的区别
2019/01/18 jQuery
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
举例详解Python中的split()函数的使用方法
2015/04/07 Python
Python3.2模拟实现webqq登录
2016/02/15 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
python保存网页图片到本地的方法
2018/07/24 Python
Python正则表达式和元字符详解
2018/11/29 Python
实例讲解Python中整数的最大值输出
2019/03/17 Python
python psutil模块使用方法解析
2019/08/01 Python
详解python tcp编程
2020/08/24 Python
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
日本订房网站,预订日本星级酒店/温泉旅馆:Relux(支持中文)
2020/01/03 全球购物
联想C++笔试题
2012/06/13 面试题
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
物业管理个人自我评价
2013/11/08 职场文书
幼儿园小班评语
2014/04/18 职场文书
店长岗位职责
2015/02/11 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
Spring中bean的生命周期之getSingleton方法
2021/06/30 Java/Android