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

如何使用PyYAML向已有YAML脚本的tags键中添加数据

解决YAML文件tags列表新增条目问题

现有脚本的问题

  • 使用文件追加模式'a',导致新内容被添加到文件末尾,而非修改原有tags列表
  • 数据结构错误:tags是列表类型,每个元素是键值对字典,而非嵌套字典结构

正确实现方案(保留原文件注释与格式)

原生pyyaml无法保留YAML文件的注释和原有格式,推荐使用ruamel.yaml库处理,步骤如下:

  1. 安装依赖库:
pip install ruamel.yaml
  1. 编写修改脚本:
from ruamel.yaml import YAML

# 初始化YAML对象,保留原有格式和注释
yaml = YAML()
yaml.preserve_quotes = True

# 读取原YAML文件
with open('test.yml', 'r') as infile:
    data = yaml.load(infile)

# 向tags列表添加新条目
data['tags'].append({'managed_by': 'Teams'})

# 写回原文件
with open('test.yml', 'w') as outfile:
    yaml.dump(data, outfile)

若使用原生pyyaml(会丢失注释)

如果不需要保留注释,也可以用原生pyyaml实现:

import yaml

# 读取原文件内容
with open('test.yml', 'r') as infile:
    data = yaml.safe_load(infile)

# 添加新条目到tags列表
data['tags'].append({'managed_by': 'Teams'})

# 写回文件(注意会丢失原注释)
with open('test.yml', 'w') as outfile:
    yaml.dump(data, outfile, indent=2, default_flow_style=False)

效果验证

执行脚本后,tags列表会新增指定条目,最终效果如下:

tags:
- application_name:testin123
- cloud_supportteam:eagles
- technical_applicationid:0000
- application:default
- lifecycle:default
- function:default-api-key
- managed_by:Teams

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:27:24