104

Python 3 で pickle を使用してファイルをダンプし、pickle を使用して Python 2 でファイルをロードすると、ValueError が表示されます。

では、python 2 pickle は python 3 pickle によってダンプされたファイルをロードできませんか?

私がそれをしたい場合は?実行する方法?

4

2 に答える 2

163

Python 3 では、ピクルされたデータをより低いプロトコル番号で記述する必要があります。Python 3 では、番号を使用して新しいプロトコルが導入された(そしてそれをデフォルトとして使用する) ため、Python 2 で読み取ることができる3値に切り替えます。2

protocolのパラメータを確認してくださいpickle.dump。結果のコードは次のようになります。

pickle.dump(your_object, your_file, protocol=2)

ファイルからプロトコルを判別できるため、パラメータprotocolはありません。pickle.loadpickle

于 2014-09-15T08:29:06.197 に答える