[英]ValueError: unsupported pickle protocol: 3, python 2.7 cannot load pickle file even dump with protocol = 2
[英]ValueError: unsupported pickle protocol: 3, python2 pickle can not load the file dumped by python 3 pickle?
我使用pickle在python 3上轉儲文件,我使用pickle在python 2上加載文件,出現ValueError。
那么,python 2 pickle無法加載python 3 pickle轉儲的文件?
如果我想要它? 怎么做?
您應該在Python 3中使用較低的協議編號編寫pickle數據.Python 3引入了一個編號為3
的新協議(並將其用作默認值),因此切換回值2
,可由Python 2讀取。
檢查pickle.dump
的protocol
參數。 生成的代碼將如下所示。
pickle.dump(your_object, your_file, protocol=2)
pickle.load
沒有protocol
參數,因為pickle
可以從文件中確定協議。
Pickle使用不同的protocols
將您的數據轉換為二進制流。
必須在Python 3的協議低於指定3
,以便能夠加載在python 2.數據可以指定protocol
調用時的參數pickle.dump
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.