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

如何用Python解析YAML文件并合并指定环境与OTHERS的键集合?

配置键合并解决方案

原始YAML配置

DEV:
  A: "A_DEV_config.xml"
  B: "B_DEV_config.xml"
  C: "C_DEV_config.xml"
PROD:
  D: "D_PROD_config.xml"
  E: "E_PROD_config.xml"
  F: "E_PROD_config.xml"
OTHERS:
  G: "G_config.xml"
  H: "H_config.xml"
  K: "K_config.xml"

需求说明

  • 选择DEV环境时,输出键列表:A,B,C,G,H,K
  • 选择PROD环境时,输出键列表:D,E,F,G,H,K
  • 无论选择哪个环境,必须包含OTHERS节点下的所有键

已尝试代码

stream = open(yml_file, 'r')
data = yaml.safe_load(stream)
print(data.get("DEV").keys())

实现代码

通过列表拼接即可完成两个节点键的合并,完整代码如下:

import yaml

# 替换为你的配置文件实际路径
yml_file = "config.yaml"

# 安全加载YAML数据
with open(yml_file, 'r') as stream:
    data = yaml.safe_load(stream)

# 切换目标环境,可改为"PROD"
target_env = "DEV"

# 获取目标环境的键列表
env_keys = list(data.get(target_env, {}).keys())
# 获取OTHERS节点的键列表
others_keys = list(data.get("OTHERS", {}).keys())

# 合并两个键列表
combined_keys = env_keys + others_keys

# 输出为逗号分隔的字符串(也可直接输出列表)
print(",".join(combined_keys))

补充说明

  1. 用list()将字典的键视图转换为列表,方便后续拼接操作
  2. 直接用+拼接目标环境键列表和OTHERS键列表,完全匹配需求
  3. 如果场景中存在重复键需要去重,可转为集合后再转回列表:combined_keys = list(set(env_keys + others_keys)),当前需求无需此操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:52:27