2009-08-09 3 views
3

numpyの(と思う)で定義されたオブジェクトINFをpickle化しようとすると、ダンプ[OK]を行くが、ロードは失敗します。numpyのInfオブジェクトをピクルする方法は?

>>> 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'> 

はなぜですか? さらに、それを修正する方法はありますか?あなたはより多くのゼロよりピクルスプロトコルを指定する場合、それが動作する何か他のものの意志の欠陥にプログラムの優雅さを、それを変更...

おかげ

答えて

5

- 私はそれにInfのを持っているものを酸洗いします。プロトコルは、多くの場合、最新かつ最高のプロトコルを使用するという意味、-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. 
-1

は任意のPythonオブジェクトのために働くのSourceForgeでこのソリューションを試してみてください:

y_serial.pyモジュール::倉庫PythonオブジェクトSQLite

"コードの数行で、Pythonオブジェクトを圧縮してアノテートし、後でSQLを持たないキーワードで時間順に取得します。データベースにスキーマを保存する最も有益な"標準 "モジュール無データ。

http://yserial.sourceforge.net

関連する問題