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'}
唯一の違いは、generated.please_dont_use_dict_as_a_variable_name
[1]単一の共有オブジェクトであるのに対しmanually_copied.get_dict
は、あなたに毎回辞書の新しいコピーを与えることです。これは検索後にプログラム内の辞書を変更する場合には重要ですが、他と独立して変更する必要がある場合は常にcopy.copy
またはcopy.deepcopy
を使用して新しいコピーを作成してください。等
[1] dict
、list
、str
、int
、map
、一般的に悪い変数名とみなされます。その理由は、これらが既にビルトインとして定義されており、非常に一般的に使用されているためです。だから、もしあなたがそのような名前をつけても、少なくとも「dict
doesn」ということを心に留めておかなければならないので、コードを読んでいる人々のために認知不調を引き起こします。それは通常ここで何をしているのかを意味します。また、ある種のコードがタイプdict
を使用しようとしているので、dict
のオブジェクトが呼び出し可能でない(または何か)ことが報告されている紛らわしい解決のバグをいつの間にか取得する可能性があります代わりに名前dict
にバインドした辞書オブジェクト。
出典
2012-08-06 02:53:25
Ben
可能性の重複:http://stackoverflow.com/questions/7100125/storing-python-dictionaries –
、JSONにシリアライズファイルにJSONを書き込み、ファイルを読み込む、 'json.loads()'その後? – favoretti
参照:[Pythonでファイルに辞書を保存する方法](http://stackoverflow.com/q/19201290/562769)と[Python辞書を格納する](http://stackoverflow.com/q/7100125)/562769)。 –