2014-09-11 82 views
2

我有一个词典列表。偶尔,我想更改并保存其中的一个字典,以便在重新启动脚本时使用新消息。现在,我通过修改脚本并重新运行脚本来做出更改。我想将它从脚本中提取出来,并将字典列表放入某种配置文件中。如何将字典列表保存到文件?

我已经找到了如何写一个列表到file的答案,但是这里假定它是一个平面列表。我怎样才能做到这一点与字典清单?

我的名单看起来是这样的:

回答

13

提供的对象只包含JSON可处理对象(liststuplesstringsdictsnumbersNoneTrueFalse),你可以转储作为json.dump

import json 
with open('outputfile', 'w') as fout: 
    json.dump(your_list_of_dict, fout) 
1

你将不得不遵循写一个字典的方式是一种文件与您提到的帖子不同。

首先,您需要序列化对象,而不是坚持它。这些是“将python对象写入文件”的奇特名称。

Python有3个默认包含的序列化模块,您可以使用它来实现您的目标。他们是:腌菜,货架和json。每个人都有自己的特点,你必须使用的是一个更适合你的项目。您应该检查每个模块文档以获取更多信息。

如果你的数据将只能由Python代码访问,你可以使用搁置,这里有一个例子:

import shelve 

my_dict = {"foo":"bar"} 

# file to be used 
shelf = shelve.open("filename.shlf") 

# serializing 
shelf["my_dict"] = my_dict 

shelf.close() # you must close the shelve file!!! 

要检索你可以做数据:

import shelve 

shelf = shelve.open("filename.shlf") # the same filename that you used before, please 
my_dict = shelf["my_dict"] 
shelf.close() 

请参阅您可以像处理字典一样处理搁置对象。

0

只是为了完整性我还添加了json.dumps()方法:

with open('outputfile_2', 'w') as file: 
    file.write(json.dumps(logic_steps, indent=4)) 

json.dump()json.dumps()

之间的差异一看 here