用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学习小技巧之列表项的排序
May 20 Python
python format 格式化输出方法
Jul 16 Python
解决Python下imread,imwrite不支持中文的问题
Dec 05 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
python提取照片坐标信息的实例代码
Aug 14 Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 Python
wxPython实现画图板
Aug 27 Python
Python中Flask-RESTful编写API接口(小白入门)
Dec 11 Python
python def 定义函数,调用函数方式
Jun 02 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
Jan 01 Python
M1芯片安装python3.9.1的实现
Feb 02 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
Feb 23 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 中文处理技巧
2010/04/25 PHP
php写入、删除与复制文件的方法
2015/06/20 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
JS控制文本框textarea输入字数限制的方法
2013/06/17 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
2016/12/08 Javascript
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
详解vue中computed 和 watch的异同
2017/06/30 Javascript
bootstrap table表格客户端分页实例
2017/08/07 Javascript
vue2 router 动态传参,多个参数的实例
2017/11/10 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
详解Next.js页面渲染的优化方案
2019/01/27 Javascript
详解微信小程序scroll-view横向滚动的实践踩坑及隐藏其滚动条的实现
2019/03/14 Javascript
微信小程序开发注意指南和优化实践(小结)
2019/06/21 Javascript
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
django 实现电子支付功能的示例代码
2018/07/25 Python
python2与python3共存问题的解决方法
2018/09/18 Python
python简单区块链模拟详解
2019/07/03 Python
基于python使用tibco ems代码实例
2019/12/20 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
德国家具折扣店:POCO
2020/02/28 全球购物
Java语言程序设计测试题判断题部分
2013/01/06 面试题
人力资源经理自我评价
2014/01/04 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
行政文员岗位职责
2015/02/04 职场文书
五一晚会主持词
2015/07/01 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
高中化学教学反思
2016/02/22 职场文书
详细分析PHP7与PHP5区别
2021/06/26 PHP