用python3讀取python2的pickle數(shù)據(jù)方式
問題一:TypeError: a bytes-like object is required, not 'str'
解決:該問題屬于Python3和Python2的字符串兼容問題,數(shù)據(jù)文件是在Python2下序列化的,使用Python3讀取時,需要將‘str'轉(zhuǎn)化為'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數(shù)據(jù)方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中隨機(jī)休眠技術(shù)原理與應(yīng)用詳解
在編程中,讓程序暫停執(zhí)行特定時間是常見需求,當(dāng)需要引入不確定性時,"隨機(jī)休眠"就成為關(guān)鍵技巧,下面我們就來看看Python中隨機(jī)休眠技術(shù)的具體實(shí)現(xiàn)與應(yīng)用吧2025-03-03
pandas學(xué)習(xí)之txt與sql文件的基本操作指南
Pandas是Python的第三方庫,提供高性能易用的數(shù)據(jù)類型和分析工具,下面這篇文章主要給大家介紹了關(guān)于pandas學(xué)習(xí)之txt與sql文件的基本操作指南,需要的朋友可以參考下2021-08-08
Win10下用Anaconda安裝TensorFlow(圖文教程)
這篇文章主要介紹了Win10下用Anaconda安裝TensorFlow(圖文教程),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
django1.11.1 models 數(shù)據(jù)庫同步方法
今天小編就為大家分享一篇django1.11.1 models 數(shù)據(jù)庫同步方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
Python中shutil模塊的學(xué)習(xí)筆記教程
shutil模塊是一種高層次的文件操作工具,類似于高級API,主要強(qiáng)大之處在于其對文件的復(fù)制與刪除操作更是比較支持好。下面這篇文章主要介紹了Python中shutil模塊的相關(guān)教程,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2017-04-04
Python(TensorFlow框架)實(shí)現(xiàn)手寫數(shù)字識別系統(tǒng)的方法
這篇文章主要介紹了Python(TensorFlow框架)實(shí)現(xiàn)手寫數(shù)字識別系統(tǒng)的方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05

