我有一个字典,包含字符串,列表,数字等简单类型。我可以用json.dumps
打印它,但是yaml会更干净。我可以使用Yaml工具打印字典吗?
如果我愿意
import yaml
with open("out.yaml", 'w') as out:
yaml.dump(mydic, out)
我得到很多类似!!python/object/apply:collections.OrderedDict
的样板
答案 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
将不带显式标签显示。