用python3讀取python2的pickle數(shù)據(jù)方式
問(wèn)題一:TypeError: a bytes-like object is required, not 'str'
解決:該問(wèn)題屬于Python3和Python2的字符串兼容問(wèn)題,數(shù)據(jù)文件是在Python2下序列化的,使用Python3讀取時(shí),需要將‘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))
問(wèn)題二: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ù)方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python opencv圖像基本操作學(xué)習(xí)之灰度圖轉(zhuǎn)換
使用opencv將圖片轉(zhuǎn)為灰度圖主要有兩種方法,第一種是將彩色圖轉(zhuǎn)為灰度圖,第二種是在使用OpenCV讀取圖片的時(shí)候直接讀取為灰度圖,今天通過(guò)實(shí)例代碼講解Python opencv圖像基本操作學(xué)習(xí)之灰度圖轉(zhuǎn)換,感興趣的朋友一起看看吧2023-02-02python分批定量讀取文件內(nèi)容,輸出到不同文件中的方法
今天小編就為大家分享一篇python分批定量讀取文件內(nèi)容,輸出到不同文件中的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12python3.6使用pymysql連接Mysql數(shù)據(jù)庫(kù)
這篇文章主要為大家詳細(xì)介紹了python3.6使用pymysql連接Mysql數(shù)據(jù)庫(kù),以及簡(jiǎn)單的增刪改查操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05numpy 產(chǎn)生隨機(jī)數(shù)的幾種方法
本文主要介紹了numpy 產(chǎn)生隨機(jī)數(shù)的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02PyQt5實(shí)現(xiàn)進(jìn)度條與定時(shí)器及子線程同步關(guān)聯(lián)
這篇文章主要為大家詳細(xì)介紹了PyQt5如何實(shí)現(xiàn)進(jìn)度條與定時(shí)器及子線程的同步關(guān)聯(lián),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-01-01vscode調(diào)試django項(xiàng)目的方法
這篇文章主要介紹了vscode調(diào)試django項(xiàng)目的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08