ruamel yaml的值更改将无法使用并且会忽略缩进
问题描述:
我有一个以正确的格式将数据转储回YAML的问题。看看其他类似的问题,但没有找到解决这个问题的方法。 当前代码在Python:ruamel yaml的值更改将无法使用并且会忽略缩进
template = yaml.load(open(templateFile), Loader=yaml.RoundTripLoader)
template["key"] = new_value
yaml.dump(template, sys.stdout, Dumper=yaml.RoundTripDumper, indent=2)
输入:
parameters:
key: value
输出:
parameters:
key: value
key: new_value
预期输出:
parameters:
key: new_value
应该如何代码进行修改,要么改变旧的“键”值,还是输入正确缩进的新键值?
答
你必须给new_value
分配给正确的映射/字典:
import sys
from ruamel import yaml
template_file = 'input.yaml'
new_value = 'new_value'
template = yaml.load(open(template_file), Loader=yaml.RoundTripLoader)
template['parameters']['key'] = new_value
yaml.dump(template, sys.stdout, Dumper=yaml.RoundTripDumper, indent=2)
key
“下的”缩进一个新值将需要:
template['parameters']['newkey'] = 'added_value'
请注意,这是习惯使用snake_case for Python变量,如template_file
(RoundTripLoader
/RoundTripDumper
是类的名称)
“Looked into ot她的类似问题“包括为什么不请你的链接和解释。 –