[英]Best way to store dictionary in a file and load it partially?
這是將字符串字典存儲在文件中的最佳方法(因為它們很大)並將其部分加載到python中。 這里的字符串字典意味着,關鍵字將是一個字符串,而值將是一個字符串列表。
字典以附加形式存儲以檢查密鑰,如果可用,則不更新,否則更新。 然后使用密鑰進行后期處理。
您可以簡單地將字典寫入文本文件,然后創建一個僅從該文本文件中提取某些鍵和值的新字典。
但您最好探索json模塊。
這是使用json模塊將稱為“樣本”的字典寫入文件的一種簡單方法:
import json
with open('result.json', 'w') as fp:
json.dump(sample, fp)
在加載方面,我們需要了解更多有關如何選擇要從JSON文件加載的鍵的信息。
上面的答案很好,但是我討厭使用JSON,在破壞數據之前,我一直遇到泡菜問題,所以我要做的是,我使用numpy的保存和加載
保存np.save(filename,dict)
加載dict = np.load(filename).item()
確實很簡單,而且效果很好,就部分加載而言,您總是可以將字典拆分成多個較小的字典,然后將它們保存為單獨的文件,也許不是一個很具體的解決方案,但是它可以工作
拆分字典,您可以執行以下操作
temp_dict = {}
for i,k in enumerate(dict.keys()):
if i%1000 == 0:
np.save("records-"+str(i-1000)+"-"+str(i)+".npy",temp_dict)
temp_dict = {}
temp_dict[k]=dict[k].value()
然后對於加載只需執行類似
my_dict={}
all_files = glob.glob("*.npy")
for f in all_files:
dict = np.load(filename).item()
my_dict.update(dict)
如果這是用於某種數據庫類型的,請為自己省去麻煩,並使用TinyDB 。 保存到光盤時,它使用JSON格式,並為您提供所需的“部分”加載。
我只推薦 TinyDB
因為這似乎與您要實現的目標最接近,如果您不喜歡這種方法,則可以嘗試使用Google谷歌搜索其他數據庫!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.