2024-09-24 02:19:24 发布
网友
我有一个包含以下内容的YAML文件:
--- 'Croatia': population: 4600000 capital: Zagreb 'Italy': population: 60000000 capital: Rome
如何添加新字段:
我如何给每个州加上“大陆”这个有价值的欧洲?在
如果你想保留你原来的YAML布局和引用,那么你通常不需要花很多力气就可以用pyyaml做到这一点。在
使用ruamel.yaml(免责声明:我是该包的作者),这要简单得多,但是您仍然需要对顶层缩进执行两个空格的操作(使用transform参数):
ruamel.yaml
transform
import sys import ruamel.yaml yaml_str = """\ - 'Croatia': population: 4600000 capital: Zagreb """ def indent_data(s): return s.replace('\n', '\n ') yaml = ruamel.yaml.YAML() # yaml.indent(mapping=4, sequence=4, offset=2) yaml.preserve_quotes = True yaml.explicit_start = True data = yaml.load(yaml_str) data['Croatia']['continent'] = 'Europe' yaml.dump(data, sys.stdout, transform=indent_data)
给出:
原始文档中的任何注释都将保留在输出中,但是由于额外的缩进,EOL注释可能会发生偏移。在
加载它,像往常一样更新字典中的字段并再次转储。在
data = yaml.load(...) data['Croatia']['continent'] = 'Europe' yaml.dump(data, ...)
如果你想保留你原来的YAML布局和引用,那么你通常不需要花很多力气就可以用pyyaml做到这一点。在
使用
ruamel.yaml
(免责声明:我是该包的作者),这要简单得多,但是您仍然需要对顶层缩进执行两个空格的操作(使用transform
参数):给出:
^{pr2}$原始文档中的任何注释都将保留在输出中,但是由于额外的缩进,EOL注释可能会发生偏移。在
加载它,像往常一样更新字典中的字段并再次转储。在
相关问题 更多 >
编程相关推荐