簡體   English   中英

ValueError:不支持的pickle協議:3,python2 pickle無法加載python 3 pickle轉儲的文件?

[英]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.dumpprotocol參數。 生成的代碼將如下所示。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM