写入 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
我正在使用 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