【问题标题】:Writing to a Yaml file写入 Yaml 文件
【发布时间】:2022-01-25 08:07:36
【问题描述】:

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

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

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

如何创建上述精确格式?

【问题讨论】:

  • 除非您使用标准 YAML 解析器以外的其他工具解析生成的文件,否则序列的实际格式/缩进根本不重要。

标签: yaml pyyaml ruamel.yaml


【解决方案1】:

您可以使用ruamel.yaml 执行此操作,将序列缩进从默认的二设置为四, 以及破折号+空格的偏移量(需要最小缩进二),从零到二。 您应该保留默认的映射缩进不变:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-11
    • 2018-01-08
    • 1970-01-01
    • 2014-09-16
    • 2021-01-18
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多