Pickleを使用してpython 3にファイルをダンプし、pickleを使用してpython 2にファイルをロードします。ValueErrorが表示されます。
したがって、python 2 pickleはpython 3 pickleによってダンプされたファイルをロードできませんか?
欲しいなら?実行する方法?
Python 3で、より小さなプロトコル番号でピクルスデータを記述する必要があります。Python 3では、番号3
の新しいプロトコルが導入され(デフォルトとして使用されます)、2
の値に戻ります。 Pythonで読むことができます2。
pickle.dump
のprotocol
parameterを確認してください。結果のコードは次のようになります。
pickle.dump(your_object, your_file, protocol=2)
protocol
はファイルからプロトコルを決定できるため、 pickle.load
にはpickle
parameterがありません。
Pickleは、異なるprotocols
name__を使用して、データをバイナリストリームに変換します。
python 2には、 3種類のプロトコルがあります (0
、1
、2
)、デフォルトは0
です。
python 3には 5つの異なるプロトコルがあります (0
、1
、2
、3
、4
)、デフォルトは3
です。
python 3でデータを読み込むには、python 3で3
より低いプロトコルを指定する必要があります。2.呼び出し時にprotocol
name__パラメーターを指定できます pickle.dump
。