私はruamel.yaml
を使ってPython辞書をYAMLファイルにダンプしようとしています。私は辞書をかなり-印刷するruamel.yaml
でruamel.yamlはsort_keysに相当しますか?
import json
with open('outfile.json', 'w') as f:
json.dump(mydict, f, indent=4, sort_keys=True)
のと同じくらい簡単です、私は限り
import ruamel.yaml
with open('outfile.yaml', 'w') as f:
ruamel.yaml.round_trip_dump(mydict, f, indent=2)
として得ているが、それはいないようですjson
モジュールのインターフェイスに精通していsort_keys
オプションをサポートします。 ruamel.yaml
でもdoesn't seem to have any exhaustive docsであり、Googleが「ruamel.yaml sort」または「ruamel.yaml alphabetize」を検索しても、私が期待しているシンプルさのレベルでは何も上がらなかった。
ソートされたキーでYAMLファイルをきれいに印刷するための1つまたは2つのライナーはありますか?
(再帰的に、私はキーが容器全体を下にアルファベット順にする必要があることに注意してください。。ただ、トップレベルをアルファベット順に並べことは十分ではありません)
私はround_trip_dump
を使用する場合、キーがあることに注意してくださいソートされていない。 safe_dump
を使用すると、出力は "YAMLスタイル"(またはもっと重要な "Kubernetesスタイル")YAMLではありません。私は出力に[]
または{}
を入れたくありません。
$ pip freeze | grep yaml
ruamel.yaml==0.12.5
$ python
>>> import ruamel.yaml
>>> mydict = {'a':1, 'b':[2,3,4], 'c':{'a':1,'b':2}}
>>> print ruamel.yaml.round_trip_dump(mydict) # right format, wrong sorting
a: 1
c:
a: 1
b: 2
b:
- 2
- 3
- 4
>>> print ruamel.yaml.safe_dump(mydict) # wrong format, right sorting
a: 1
b: [2, 3, 4]
c: {a: 1, b: 2}
をあなたは私の答えの下部にsafe_dumpパラメータで見たことがありますか? – Anthon