您可以查找
CommentedMap
在注册
RoundTripRepresenter
使用相同的代码
OrderedDict
实际上,你只需要一条额外的线:
yaml.Representer.add_representer(OrderedDict, yaml.Representer.represent_dict)
有了它,你的程序就给了你:
%YAML 1.1
---
- element 1 # this is the first element
- element 2
- hosts: all
vars:
some_var: true
tasks:
- name: print some_var
debug:
var: some_var
您还可以使用pyyaml将representer连接到聚合转储程序结构的方式:
ruamel.yaml.add_representer(OrderedDict, ruamel.yaml.RoundTripDumper.represent_dict, Dumper=ruamel.yaml.RoundTripDumper)
但这更为冗长。