あなたはpon(Pythonのオブジェクト表記モジュールを使用することによって、それをダンプすることができます:免責事項は、私が著者ですそのモジュール)の
from pon import PON, loads
data = {
"cats": {
"sphinx": 3,
"british": 2
},
"dogs": {}
}
pon = PON(obj=data)
pon.dump()
与える:
dict(
cats=dict(
sphinx=3,
british=2,
),
dogs=dict( ),
)
正しいPythonですが、dict
を使用してキーに必要な引用符付きの文字列を交換します。与え
read_back = loads(open('file_name.pon').read())
print(read_back)
:
あなたは再びこれをロードすることができ
{'cats': {'sphinx': 3, 'british': 2}, 'dogs': {}}
をloads()
がは、文字列を評価しません、それは実際に安全に組み込みパーサのpythonのを使用してそれを解析していることに注意してください。
PONでは、コメントを保存しているファイルからPythonディクショナリを読み込み、コメントを付けたファイルをダンプすることもできます。これが実際の有用性が実現する場所です。
また
、あなたが任意のより読みやすいYAMLフォーマットのようなものを、好きならば、あなたはruamel.yaml
を使用して行うことができます。
cats:
sphinx: 3
british: 2
dogs: {}
:あなたの内容のファイル
file_name.yaml
を与える
import ruamel.yaml
ruamel.yaml.round_trip_dump(data, stream=open('file_name.yaml', 'wb'), indent=4)
あなたが好むと思われるインデントを使用します(@アルベルトのバージョンよりも効率的です)
それは答えです!大きなお返事ありがとうございます – PinkiNice
それは私のためには機能しません。それはOPが既に持っていたのと同じように1行でそれを表示します。 – zondo
@zondo私はこれを使用しました:file.write(pprint.pformat(my_dict)) – PinkiNice