Python 3 で pickle を使用してファイルをダンプし、pickle を使用して Python 2 でファイルをロードすると、ValueError が表示されます。
では、python 2 pickle は python 3 pickle によってダンプされたファイルをロードできませんか?
私がそれをしたい場合は?実行する方法?
Python 3 で pickle を使用してファイルをダンプし、pickle を使用して Python 2 でファイルをロードすると、ValueError が表示されます。
では、python 2 pickle は python 3 pickle によってダンプされたファイルをロードできませんか?
私がそれをしたい場合は?実行する方法?
Python 3 では、ピクルされたデータをより低いプロトコル番号で記述する必要があります。Python 3 では、番号を使用して新しいプロトコルが導入された(そしてそれをデフォルトとして使用する) ため、Python 2 で読み取ることができる3
値に切り替えます。2
protocol
のパラメータを確認してくださいpickle.dump
。結果のコードは次のようになります。
pickle.dump(your_object, your_file, protocol=2)
ファイルからプロトコルを判別できるため、パラメータprotocol
はありません。pickle.load
pickle