Как красиво печатать в стиле YAML Python? - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть диктат со строками, списками, числами и т. Д. С простыми типами. Я могу довольно напечатать это с json.dumps, но yaml будет чище. Могу ли я распечатать dict с помощью инструментов yaml?

Если я это сделаю

import yaml

with open("out.yaml", 'w') as out:
    yaml.dump(mydic, out)

, я получу много шаблонов, таких как !!python/object/apply:collections.OrderedDict

1 Ответ

1 голос
/ 07 апреля 2020

Вам необходимо добавить представитель, который представляет OrderedDict как обычное сопоставление YAML:

yaml.add_representer(OrderedDict,
    lambda dumper, data: dumper.represent_mapping('tag:yaml.org,2002:map', data.items()))

Или, если вы используете Python 3.7+, просто покончите с OrderedDict и используйте dict, поскольку он сохраняет порядок вставки с этой версии. dict будет отображаться без явного тега по умолчанию.

...