如何在Python中漂亮地打印像YAML的字典?

时间:2020-04-07 13:27:47

标签: json python-3.x dictionary yaml pretty-print

我有一个字典,包含字符串,列表,数字等简单类型。我可以用json.dumps打印它,但是yaml会更干净。我可以使用Yaml工具打印字典吗?

如果我愿意

import yaml

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

我得到很多类似!!python/object/apply:collections.OrderedDict的样板

1 个答案:

答案 0 :(得分:1)

您需要添加将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将不带显式标签显示。