1

フロートのリストのピクルスリストを含むファイルがあります。リストをピクルスにした同じマシンで問題なくロードできますが、別のマシンで試してみると、次のエラーが発生しました。

Traceback (most recent call last):
File "<console>", line 2, in <module>
File "/usr/lib/python2.7/pickle.py", line 1378, in load
  return Unpickler(file).load()
File "/usr/lib/python2.7/pickle.py", line 858, in load
  dispatch[key](self)
KeyError: '\x00'

2つのPythonバージョンは、2.7.0(元のマシン上)と2.7.2(ファイルの選択を解除しようとしたもの)です。それだけで互換性がなくなるはずはないと思います。

4

3 に答える 3

1

それだけで互換性がなくなるはずはないと思います。

最近のリリースで修正された2.7.0のバグがない限り。それらの変更メモを確認してください。個人的には、 Issue7117が原因である可能性が最も高いと思います。

問題#7117:ほぼすべてのプラットフォームで:Python内のfloatからstringへの変換およびstringからfloatへの変換が正しく丸められるようになりました。これらの変換が発生する場所は次のとおりです。浮動小数点数および複素数の場合はstr。floatおよび複雑なコンストラクター。古いスタイルと新しいスタイルの数値フォーマット。marshal、pickle、jsonを使用したfloatと複素数のシリアル化と逆シリアル化。Pythonコードでのfloatおよび虚数リテラルの解析。10進数から浮動小数点への変換。

于 2012-05-26T02:13:12.537 に答える
1

私は同じ問題に直面し、多くのことを試みましたが、すべて無駄でした。最後に、cPickleを使用して、問題を解決しました。「pickle」を「cPickle」に置き換えるだけで、すべてが正常に機能します。まったく同じメソッドと引数があります。

import cPickle

cPickle.dump()

cPickle.load()
于 2014-01-09T11:03:18.823 に答える
0

Python 2.7.12では、リストを含むjsonファイルの選択を解除できませんでした。つまり [{"k":0}、{"k":1}]

cPickleは役に立ちませんでした、jsonは助けました:

import json
json.load(open(file))
于 2017-12-27T20:54:31.547 に答える