You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ruamel.yaml修改YAML文件导出格式异常,如何仅新增字段保留原格式?

ruamel.yaml修改YAML文件保留原格式解决方案

ruamel.yaml本身就是专门为保留YAML原始格式设计的库,你只需补充匹配原文件的格式配置即可,完整可运行代码如下:

from ruamel.yaml import YAML

# 初始化YAML实例并配置格式参数
yaml = YAML()
# 缩进配置和原文件对齐:映射层级缩进2空格,列表项缩进4空格,列表的'-'符号占前2位
yaml.indent(mapping=2, sequence=4, offset=2)
# 保留原文件的引号、注释、空行等原有格式
yaml.preserve_quotes = True
# 禁用流式输出,强制使用块式结构,避免生成紧凑的单行格式
yaml.default_flow_style = False
# 可选配置:使用YAML1.2标准,避免001这类无前导引号的数值被错误解析为八进制数
yaml.version = (1, 2)

# 加载原文件
with open("my_file.yaml", "r", encoding="utf-8") as f:
    data = yaml.load(f)

# 新增目标字段
data[0]["address"] = "123 Street"

# 保存到新文件
with open("my_file_new.yaml", "w", encoding="utf-8") as f:
    yaml.dump(data, f)

运行后生成的my_file_new.yaml会完全保留原文件的缩进、注释、值格式,仅新增你指定的address字段,最终效果如下:

# my_file.yaml
- id: 001
  name: Steve
  likes:
    - soccer
    - steak
  address: 123 Street
- id: 002
  name: Mary
  likes:
    - tennis
    - ice cream

内容的提问来源于stack exchange,提问作者GlaceCelery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:54:07