问题描述
这是将字符串字典存储在文件中的最佳方法(因为它们很大)并将其部分加载到python中。 这里的字符串字典意味着,关键字将是一个字符串,而值将是一个字符串列表。
字典以附加形式存储以检查密钥,如果可用,则不更新,否则更新。 然后使用密钥进行后期处理。
1楼
通常,字典以JSON存储。
我将在此处留下一个链接:
2楼
您可以简单地将字典写入文本文件,然后创建一个仅从该文本文件中提取某些键和值的新字典。
但您最好探索json模块。
这是使用json模块将称为“样本”的字典写入文件的一种简单方法:
import json
with open('result.json', 'w') as fp:
json.dump(sample, fp)
在加载方面,我们需要了解更多有关如何选择要从JSON文件加载的键的信息。
3楼
上面的答案很好,但是我讨厌使用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)
4楼
如果这是用于某种数据库类型的,请为自己省去麻烦,并使用 。 保存到光盘时,它使用JSON格式,并为您提供所需的“部分”加载。
我只推荐 TinyDB
因为这似乎与您要实现的目标最接近,如果您不喜欢这种方法,则可以尝试使用Google谷歌搜索其他数据库!