在磁盤上存儲Python字典的最有效方法是什麼?我現在唯一知道的方法是純文本和pickle
模塊。在磁盤上存儲Python字典的有效方法?
編輯:對不起,不太清楚。通過高效我意味着最快的執行速度。字典將包含可變對象,這些可變對象將保存要解析和修改的信息。
在磁盤上存儲Python字典的最有效方法是什麼?我現在唯一知道的方法是純文本和pickle
模塊。在磁盤上存儲Python字典的有效方法?
編輯:對不起,不太清楚。通過高效我意味着最快的執行速度。字典將包含可變對象,這些可變對象將保存要解析和修改的信息。
shelve是相當不錯的,以及
或this persistent dictionary recipe
的,讓您的對象與存儲同步的方便的方法,還有的ORM SQLAlchemy爲Python
如果你只需要一種方法來存儲字符串值由一些關鍵字,theres dbm.ndbm和dbm.gnu模塊。
,如果你需要一個超高效的分佈式鍵值緩存,像memcached for python ......
除非你需要超快的性能,否則'shelve'通常是你所需要的,在這種情況下,你應該使用一個實際的數據庫。 – 2010-01-14 21:59:45
儘可能擱置使用cPickle嗎? – linkmaster03 2010-01-14 22:17:05
它確實使用cPickle(如果可用),您可以通過設置shelve.Pickler來覆蓋它。 – jspcal 2010-01-14 22:57:51
JSON和YAML工作得很好,也。
取決於「高效」的含義?文件的大小?需要時間?您需要編寫的代碼量是多少?
您有timeit
模塊可用於確定哪些符合您的「高效」特定標準。
執行速度。 – linkmaster03 2010-01-14 22:46:00
@ linkmaster03:請用更多有用的事實來更新您的問題。隱藏關於答案評論的重要信息並不能幫助任何人理解你的問題。 – 2010-01-14 22:47:47
這很大程度上取決於您想要如何使用字典。如你所說的問題,沒有一個好的答案。 – Omnifarious 2010-01-14 22:28:29
相比最快的執行速度是什麼?你是否在Python字典中重新實現數據庫?字典有多大?如果條目數足夠多,SQLite或BDB可能會更快。 – jmucchiello 2010-01-14 22:59:12
密鑰的數量將以千計。與具有這個數值的數據庫相比,字典在性能上會受到明顯影響嗎? – linkmaster03 2010-01-15 01:23:39