3

numpyで定義されているようにオブジェクトInfをピクルスしようとすると(私は思う)、ダンプはOKになりますが、ロードは失敗します:

>>> cPickle.dump(Inf, file("c:/temp/a.pcl",'wb'))
>>> cPickle.load(file("c:/temp/a.pcl",'rb'))
Traceback (most recent call last):
  File "<pyshell#257>", line 1, in <module>
    cPickle.load(file("c:/temp/a.pcl",'rb'))
ValueError: could not convert string to float
>>> type(Inf)
<type 'float'>

何故ですか?さらに、それを修正する方法はありますか?Infが含まれているものを漬け込みたいのですが、それを別のものに変更すると、プログラムの優雅さが損なわれます...

ありがとう

4

2 に答える 2

5

ピクルスプロトコルをゼロより大きく指定すると、機能します。プロトコルは多くの場合-1として指定されます。これは、最新かつ最高のプロトコルを使用することを意味します。

>>> cPickle.dump(Inf, file("c:/temp/a.pcl",'wb'), -1)
>>> cPickle.load(file("c:/temp/a.pcl",'rb'))
1.#INF                   -- may be platform dependent what prints here.
于 2009-08-09T02:12:38.517 に答える
-1

任意のPythonオブジェクトで機能するSourceForgeでこのソリューションを試してください。

y_serial.pyモジュール::SQLiteを使用したPythonオブジェクトのウェアハウス

「シリアル化+永続性::数行のコードで、Pythonオブジェクトを圧縮してSQLiteに注釈を付けます。その後、SQLを使用せずにキーワードで時系列に取得します。データベースがスキーマレスデータを格納するための最も便利な「標準」モジュールです。」

http://yserial.sourceforge.net

于 2009-09-13T05:23:41.563 に答える