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

Python3如何从带${}占位符key的YAML文件中提取指定key对应值

问题原因

你的代码匹配失败的核心原因是YAML文件中实际存储的key是${key_bar}格式,而非纯字符串key_bar,字符串匹配条件不触发所以没有输出。另外你使用的yaml.load()方法存在安全隐患,官方已推荐替换为yaml.safe_load()。

修正后的代码
#!/usr/bin/env python3
import yaml

# 用with上下文管理器自动管理文件打开关闭,避免资源泄漏
with open("/path/to/file/test.yaml", 'r', encoding='utf-8') as yaml_file:
    # 使用安全加载方法避免恶意yaml代码执行风险
    yaml_content = yaml.safe_load(yaml_file)

target_value = None
for key, value in yaml_content.items():
    # 先处理key,去掉外层的${}后再匹配
    processed_key = key.strip('${}')
    if processed_key == "key_bar":
        target_value = value
        print(target_value)
        # 匹配到后直接跳出循环,不需要继续遍历
        break
补充说明
  • PyYAML读取YAML内容时会自动去掉值外层的单引号,你获取到的target_value就是纯字符串P98fjljnlkfn,不需要额外做去引号处理
  • 如果你确认文件中所有key都是${xxx}的固定格式,也可以直接用if key == "${key_bar}"做匹配,不需要额外处理key字符串

内容的提问来源于stack exchange,提问作者data-bite

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:06:01