写入 Yaml 文件

Writing to a Yaml file

我正在使用 python 写入 YAML 文件。但是我无法按照我的要求以特定格式编写它

  awesome_people:
    name: Awesome People
    entities:
      - device_tracker.dad_smith
      - device_tracker.mom_smith

我在 entities 部分遇到问题,因为我无法像上面的 YAML 那样创建具有适当缩进的列表。

我怎样才能创建上面的确切格式?

您可以使用 ruamel.yaml 将序列缩进从默认的二设置为四, 和 dash+space 的偏移量(需要至少缩进两个),从零到二。 您应该保留默认的映射缩进不变:

import sys
import ruamel.yaml

ent = ['device_tracker.dad_smith', 'device_tracker.mom_smith']
data = dict(awesome_people = dict(name='Awesome People', entities=ent))

yaml_str = """\
"""

yaml = ruamel.yaml.YAML()
yaml.indent(sequence=4, offset=2)
# print(data)
yaml.dump(data, sys.stdout)

给出:

awesome_people:
  name: Awesome People
  entities:
    - device_tracker.dad_smith
    - device_tracker.mom_smith