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

问题描述 投票:0回答:1

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

如果我这样做

import yaml

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

我得到很多样板,例如!!python/object/apply:collections.OrderedDict

json python-3.x dictionary yaml pretty-print
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.