2014-09-11 93 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