用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使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
python中合并两个文本文件并按照姓名首字母排序的例子
Apr 25 Python
Python实现曲线点抽稀算法的示例
Oct 12 Python
如何在python中使用selenium的示例
Dec 26 Python
python 获取微信好友列表的方法(微信web)
Feb 21 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
Aug 12 Python
Python 实现自动获取种子磁力链接方式
Jan 16 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
python3正则模块re的使用方法详解
Feb 11 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 Python
Python利用FlashText算法实现替换字符串
Mar 31 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如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
PHP实现简单登录界面
2019/10/23 PHP
prototype 1.5 & scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
JavaScript也谈内存优化
2014/06/06 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
Jquery结合HTML5实现文件上传
2015/06/25 Javascript
jQuery动态星级评分效果实现方法
2015/08/06 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
python实现的一个火车票转让信息采集器
2014/07/09 Python
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
利用Anaconda完美解决Python 2与python 3的共存问题
2017/05/25 Python
Django中Forms的使用代码解析
2018/02/10 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
Python3爬虫全国地址信息
2019/01/05 Python
CSS3 box-sizing属性详解
2016/11/15 HTML / CSS
Soft Cotton捷克:来自爱琴海棉花的浴袍
2017/02/01 全球购物
大学四年规划书范文
2013/12/27 职场文书
大学四年职业生涯规划书范文
2014/01/02 职场文书
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
PHP命令行与定时任务
2021/04/01 PHP
nginx内存池源码解析
2021/11/20 Servers
yolov5返回坐标的方法实例
2022/03/17 Python