首页 > 解决方案 > 在 YAML 中插入节点不会改变注释

问题描述

我必须用新条目更新 YAML 文件。我在特定索引处插入数据,但在一种情况下失败:当在要添加条目的索引之后存在注释时。

代码:

from ruamel.yaml import YAML
import sys

stream = """
# Starting comment
test : 123
# Comment before test3
test3 : 12.23.532.2
"""

yaml = YAML(typ='rt')
yaml.preserve_quotes = True
yaml.default_flow_style = False
dic = yaml.load(stream)
dic.insert(1,"test-demo","value-demo")
yaml.dump(dic, sys.stdout)

我得到以下输出:

# Starting comment
test: 123
# Comment before test3
test-demo: value-demo
test3: 12.23.532.2

预期输出为:

# Starting comment
test: 123
test-demo: value-demo
# Comment before test3
test3: 12.23.532.2

Ruamel.yaml 版本:

ruamel.yaml==0.17.10
ruamel.yaml.clib==0.2.6

如何避免这种情况并将数据正确添加到 YAML?

标签: pythonyamlruamel.yaml

解决方案


推荐阅读