回答:
Python 3では、より低いプロトコル番号でピクルスデータを書き込む必要があります。Python3は、番号付きの新しいプロトコルを導入し3(デフォルトで使用します)、2Python 2で読み取れる値に切り替えます。
のprotocolパラメータを確認してくださいpickle.dump。結果のコードは次のようになります。
pickle.dump(your_object, your_file, protocol=2)
何もありませんprotocolで、パラメータpickle.loadのでpickle、ファイルからプロトコルを決定することができますが。
Pickleは、別のものprotocolsを使用してデータをバイナリストリームに変換します。
パイソン2である3つの異なるプロトコルが(0、1、2)、デフォルトです0。
パイソン3である5つの異なるプロトコルが(0、1、2、3、4)、デフォルトです3。
3Python 2でデータをロードできるようにするには、Python 3でより低いプロトコルを指定する必要があります。protocolを呼び出すときにパラメーターを指定できますpickle.dump。
5、以前のバージョンと互換性のないプロトコルがPython 3.8にも導入されたようです。