1. 程式人生 > >python2與python3儲存的pickle檔案不相容問題

python2與python3儲存的pickle檔案不相容問題

1.python3 讀取 python2儲存的pickle檔案

import pickle
inf=pickle.load(open('f:\\a.pkl',"rb"),encoding='latin1')
print(inf)
f.close()

2.python2 讀取 python3儲存的pickle檔案

報錯為:

ValueError: unsupported pickle protocol: 4

原因:python2 不支援讀取 protocol>2

1)在python3中將資料格式轉換成python2可讀的資料格式:
 

with open('../data.pkl', 'rb') as f:
    w = pickle.load(f)
pickle.dump(w, open('../data1.pkl',"wb"), protocol=2)

2)即可在python2環境內操作