用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实现从网络下载文件并获得文件大小及类型的方法
Apr 28 Python
Python实现大文件排序的方法
Jul 10 Python
详解Python中heapq模块的用法
Jun 28 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
Jan 27 Python
python3爬取各类天气信息
Feb 24 Python
Python实现的简单排列组合算法示例
Jul 04 Python
Win10下python3.5和python2.7环境变量配置教程
Sep 18 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
pandas.read_csv参数详解(小结)
Jun 21 Python
python如何将两张图片生成为全景图片
Mar 05 Python
python右对齐的实例方法
Jul 05 Python
python excel和yaml文件的读取封装
Jan 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
隐性调用php程序的方法
2009/03/09 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
6个超实用的PHP代码片段
2015/08/10 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
2016/06/07 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
Vue中v-show添加表达式的问题(判断是否显示)
2018/03/26 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
有趣的python小程序分享
2017/12/05 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
阿提哈德航空官方网站:Etihad Airways
2017/01/06 全球购物
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
override和overload的区别
2016/03/09 面试题
消防战士优秀事迹材料
2014/02/13 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
走近毛泽东观后感
2015/06/04 职场文书
创业的9条正确思考方式
2019/08/26 职场文书
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL
Python中的程序流程控制语句
2022/02/24 Python
Nginx+Windows搭建域名访问环境的操作方法
2022/03/17 Servers