JSON(或YAML,或其他)序列化可能會更好,但是如果您已經在Python語法中將字典寫入文本文件,並且使用變量名綁定,那麼您可以將它寫入一個.py文件。然後,該python文件將是可導入和可用的。不需要「返回字典的函數」方法,因爲您可以直接在該文件中將其用作全局函數。例如
# generated.py
please_dont_use_dict_as_a_variable_name = {'Adam': 'Room 430', 'Bob': 'Room 404'}
而非:
# manually_copied.py
def get_dict():
return {'Adam': 'Room 430', 'Bob': 'Room 404'}
唯一的區別是,manually_copied.get_dict
給你每次詞典的最新副本,而generated.please_dont_use_dict_as_a_variable_name
[1]是一個單一的共享對象。如果您在檢索程序後修改字典,這可能很重要,但如果您需要修改其中一個,則可以始終使用copy.copy
或copy.deepcopy
創建新副本。
[1] dict
,list
,str
,int
,map
等通常被視爲壞變量名。原因是這些已經被定義爲內置插件,並且被非常普遍地使用。所以,如果你給這樣一個名字,至少它會導致人們閱讀你的代碼(包括你在離開一段時間後)的認知不和諧,因爲他們必須記住「dict
doesn'這意味着它通常在這裏做什麼「。在某些時候,你很可能會得到一個令人生氣的解決方案,因爲某些代碼試圖使用類型dict
而不是可調用對象(或某物)而不是名稱爲dict
的字典對象。
來源
2012-08-06 02:53:25
Ben
可能重複:http://stackoverflow.com/questions/7100125/storing-python-dictionaries – 2012-08-06 00:31:30
序列化到JSON,JSON寫一個文件,讀取文件,'json.loads()'之後? – favoretti 2012-08-06 00:32:21
另請參閱:[如何將字典保存到Python中的文件?](http://stackoverflow.com/q/19201290/562769)和[存儲Python字典](http://stackoverflow.com/q/7100125/562769)。 – 2016-04-29 08:56:12