我想挑选一个列表,因为我需要很长时间才能创建列表。该列表由“n”个2元组值组成,其中第一个元组值是一个大字典(1k到10k键),第二个值是一个字符串。 N可以大到100s到1000s。我想保存这样的数据结构,以便我可以方便地加载它。如果列表是人类可读的,那将是很好的,但不是以性能为代价。
我了解Shelve,PyYaml,cPickle和JSON。我只是不确定在给出我的数据时要使用什么。本网站和互联网上各种其他主题的初步读数表明,cPickle可能是最佳选择。这里有大师们的想法吗?
答案 0 :(得分:1)
我会使用cPickle
,这很好用,
# Dummy data
from random import randint as r
a,b = 97,123
d = [(dict([(chr(r(a,b)),j) for j in range(1000)]),
''.join([chr(r(a,b)) for i in range(5)]))
for j in range(100)]
# Pickle it
import cPickle as pickle
f = open('store.dat','w')
pickle.dump(d,f)
f.close()
我还会考虑使用类似dumbdbm的内容。
稍后添加
继上面的示例之后,您可以执行类似的操作,
import dumbdbm as dbm
g = dbm.open('store.db')
g.update([(str(i),pickle.dumps(j)) for i,j in enumerate(d)])
g.close()