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

使用yq批量更新YAML中foo所有子元素的key_to_update值

批量更新YAML中所有子元素的指定键值

下面提供两种实用的方法实现你要的批量更新操作:

方法一:使用yq工具(推荐)

yq是专门处理YAML的命令行工具,操作简单高效。假设你的YAML文件名为input.yaml,执行以下命令即可批量更新:

# 预览修改结果(不修改原文件)
yq eval '.foo[] |= .key_to_update = "x"' input.yaml

# 直接修改原文件
yq eval -i '.foo[] |= .key_to_update = "x"' input.yaml

命令说明:

  • .foo[]:遍历foo节点下的所有子元素
  • |=:对每个遍历到的元素执行后续修改操作
  • .key_to_update = "x":将当前元素的key_to_update值设为"x"

方法二:使用Python脚本

如果不想额外安装工具,可以用Python脚本实现:

import yaml

# 读取YAML文件
with open('input.yaml', 'r', encoding='utf-8') as f:
    data = yaml.safe_load(f)

# 遍历更新所有子元素的key_to_update
for item in data['foo'].values():
    item['key_to_update'] = 'x'

# 写回原文件,保持原有键顺序
with open('input.yaml', 'w', encoding='utf-8') as f:
    yaml.dump(data, f, sort_keys=False, default_flow_style=False)

脚本说明:

  • yaml.safe_load:安全读取YAML内容,避免执行恶意代码
  • sort_keys=False:确保写入后的YAML文件保持原有的键顺序
  • default_flow_style=False:以块格式写入YAML,保持可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 18:53:13