用python3读取python2的pickle数据方式
作者:Sandwichsauce 发布时间:2023-06-05 09:45:48
标签:python3,python2,pickle
问题一: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)
来源:https://blog.csdn.net/Sandwichsauce/article/details/88638454


猜你喜欢
- 过年前产假归来,jmeter很多知识生疏了,这两天打开jmeter摸索了几下,老了记不住,还是准备弄个jmeter系列随笔吧。言归正传,使用
- 一、merge(合并)的语法:pd.merge(left, right, how='inner', on=None, lef
- 本文实例讲述了JS基于面向对象实现的选项卡效果。分享给大家供大家参考,具体如下:中间过渡环节:把面向过程的程序,改写成面向对象的形式<
- 导语相信大家对于英语四级一点都不陌生了吧?很多学校都是要求学生必须考过英语四级,不然就不能毕业。一开始我抱着侥幸心理,心想上高中的时候英语不
- 1:首先,我给我的MixTest文件夹里面分好了类的图片进行重命名(因为分类的时候没有注意导致命名有点不好)def load_data(pa
- 前不久微信上线了拍一拍功能,刚推出就被有才的网友玩坏了。还有更多没有节操的拍法这里就不展示了。但拍一拍属于弱提示,只有在聊天界面才能感受到。
- 大家都知道,linux里一切皆为文件,在linux/unix的根目录下,有个/proc目录,这个/proc 是一种内核和内核模块用来向进程(
- Python Json读写操作_JsonPath用法详解1. 介绍JSONPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,
- 在Python中,正则表达式的group和groups方法是非常有用的函数,用于处理匹配结果的分组信息。group方法是re.MatchOb
- 概念Slice切片是对底层数组Array的封装,在内存中的存储本质就是数组,体现为连续的内存块,Go语言中的数组定义之后,长度就已经固定了,
- 前言:任何一个编程者都少不了要去调试代码,不管你是高手还是菜鸟,调试程序都是一项必不可少的工作。一般来说调试程序是在编写代码之后或测试期修改
- 1、pyecharts介绍 Echarts是一款由百度公司开发的开源数据可视化JS库,pyecharts是一款使用python调用echar
- 使用Access数据库生成申报数据与读入数据的实例方法:示例:Sub Mwrite()On Error GoTo thiserrDim rs
- 一、opencv是什么?OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库.二、使用步骤1.引入库代码如下:import cv2
- 无论安装以下哪种库,强烈建议在新环境下安装,之前在base环境下安装各种报错!!!如何在新环境下安装可参见我之前的总结或网上其他文章。不推荐
- 在js中直接添加html语句,js会将html字符串解析成相应的HTML语句,并在前端进行显示。 <span style="
- 本文实例讲述了Python使用CMD模块更优雅的运行脚本的方法。分享给大家供大家参考。具体分析如下:平时由于经常给测试人员调试一些东西,虽然
- 在你的程序初始化时使用如下代码: <?php $Php2Html_FileUrl = $_SERVER["REQU
- 关于多线程的大概讲解:在Python的标准库中给出了2个模块:_thread和threading,_thread是低级模块不支持守护线程,当
- 前言golang实现定时任务很简单,只须要简单几步代码即可以完成,最近在做了几个定时任务,想研究一下它内部是怎么实现的,所以将源码过了一遍,