python - 在 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?
解决方案
推荐阅读
- javascript - 为什么未定义元素数组上的`join()`在javascript中返回少1个元素?
- javascript - Whatsapp 只分享 window.location.search 的第一个参数
- spring-boot - 部署一个 Spring Boot 应用的战争到本地 Tomcat 服务器:404 响应
- c# - 构建 .NET4.8 WinForm 时出现问题,配置设置会引发错误。在 Build:Debug|Release 输出文件夹中工作正常
- css - 为什么顶部的段落边距会碰到 div?
- java - 如何在适配器类中显示 CustomAlertDialog?
- java - 从片段中的json获取值
- javascript - ajax 和 json.parse 的问题
- apache-kafka - 保持 Kafka Producer 处于打开状态还是为每条消息创建一个新的 Producer 更好?
- r - 在 rgee 中使用 ee_extract 的图像统计信息?