2009-08-09 55 views
3

當試圖鹹菜作爲numpy的(我認爲)定義的對象天道酬勤,傾去確定,但加載失敗:如何泡菜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

,它會工作。協議通常規定爲-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

嘗試在SourceForge該解決方案將用於任意Python對象的工作:

y_serial.py模塊::倉庫Python對象與SQLite

「序列化+ persistance ::在幾行代碼中,將Python對象壓縮並註釋到SQLite中,然後稍後按關鍵字按時間順序檢索它們,而不使用任何SQL。數據庫存儲模式最有用的」標準「模塊無數據「。

http://yserial.sourceforge.net