用python3读取python2的pickle数据方式

 更新时间:2019年12月25日 16:42:55   作者:Sandwichsauce  
今天小编就为大家分享一篇用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)

以上这篇用python3读取python2的pickle数据方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 8种常用的Python工具

    8种常用的Python工具

    这篇文章主要介绍了8种常用的Python工具,帮助大家更好的学习Python,感兴趣的朋友可以了解下
    2020-08-08
  • zbar解码二维码和条形码示例

    zbar解码二维码和条形码示例

    这篇文章主要介绍了zbar解码二维码和条形码示例,需要的朋友可以参考下
    2014-02-02
  • opencv 图像礼帽和图像黑帽的实现

    opencv 图像礼帽和图像黑帽的实现

    这篇文章主要介绍了opencv 图像礼帽和图像黑帽的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 在Python中使用PIL模块处理图像的教程

    在Python中使用PIL模块处理图像的教程

    这篇文章主要介绍了在Python中使用PIL模块处理图像的教程,PIL模块在Python编程中也是十分常用的模块,示例代码基于Python2.x版本,需要的朋友可以参考下
    2015-04-04
  • python画图的函数用法以及技巧

    python画图的函数用法以及技巧

    在本文里小编给大家整理的是关于怎么用python画图以及python画图中turtle函数的用法技巧,需要的朋友们参考下。
    2019-06-06
  • PyQt5实现简单数据标注工具

    PyQt5实现简单数据标注工具

    这篇文章主要为大家详细介绍了PyQt5实现简单数据标注工具,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • 基于python的BP神经网络及异或实现过程解析

    基于python的BP神经网络及异或实现过程解析

    这篇文章主要介绍了基于python的BP神经网络及异或实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Python3爬虫ChromeDriver的安装实例

    Python3爬虫ChromeDriver的安装实例

    在本篇文章里小编给大家整理的是一篇关于Python3爬虫ChromeDriver的安装实例内容,有兴趣的朋友们可以学习参考下。
    2021-02-02
  • python flask开发的简单基金查询工具

    python flask开发的简单基金查询工具

    基于python flask开发的简单基金查询工具,支持大盘指数实时情况查看,总持仓实际涨幅、预估涨幅等功能,感兴趣的朋友可以下载该项目来查看使用
    2021-06-06
  • python中metaclass原理与用法详解

    python中metaclass原理与用法详解

    这篇文章主要介绍了python中metaclass原理与用法,结合具体实例形式分析了Python中metaclass的功能、原理及使用metaclass动态创建类相关操作技巧,需要的朋友可以参考下
    2019-06-06

最新评论