用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 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
Python 抓取动态网页内容方案详解
Dec 25 Python
梯度下降法介绍及利用Python实现的方法示例
Jul 12 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
python中的set实现不重复的排序原理
Jan 24 Python
TensorFlow实现iris数据集线性回归
Sep 07 Python
pygame游戏之旅 添加icon和bgm音效的方法
Nov 21 Python
浅谈python中get pass用法
Mar 19 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
Jun 27 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
Python操作Elasticsearch处理timeout超时
Jul 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同时支持GIF、png、JPEG
2006/10/09 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
2014过年倒计时示例
2014/01/31 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
php实现微信发红包
2015/12/05 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
js Flash插入函数免激活代码
2009/03/31 Javascript
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
js操作二级联动实现代码
2010/07/27 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
JS检测图片大小的实例
2013/08/21 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
JS实现密码框效果
2020/09/10 Javascript
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
Python使用剪切板的方法
2017/06/06 Python
Python虚拟环境项目实例
2017/11/20 Python
Scrapy框架使用的基本知识
2018/10/21 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
美国网上订购鲜花:FTD
2016/09/23 全球购物
小学生国旗下演讲稿
2014/04/25 职场文书
伊索寓言教学反思
2014/05/01 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
孙振耀退休感言
2015/08/01 职场文书