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

Python如何校验两个YAML文件中stage字段值是否匹配

Python实现YAML任务stage校验逻辑

前置依赖

首先需要安装YAML解析库:

pip install pyyaml

实现思路

  1. 分别读取两个YAML文件并解析为Python字典
  2. 提取需求配置中的目标stage值
  3. 遍历任务配置的所有顶级键值对(自动适配动态的任务名称,无需预先知道任务名)
  4. 对每个任务判断是否包含stage字段,若存在且与需求stage匹配,执行对应任务逻辑

注:对于未配置stage字段的任务,可根据业务需求调整逻辑,默认示例中直接跳过

完整代码示例

import yaml

def load_yaml(file_path: str) -> dict:
    """加载YAML文件为字典"""
    with open(file_path, 'r', encoding='utf-8') as f:
        return yaml.safe_load(f)

def filter_and_run_jobs(job_config_path: str, req_config_path: str):
    # 加载两个配置文件
    job_config = load_yaml(job_config_path)
    req_config = load_yaml(req_config_path)
    # 提取需求的stage值
    target_stage = req_config['requirements']['stage']
    
    # 遍历所有任务(顶级键为动态任务名,直接用items()遍历即可)
    for job_name, job_params in job_config.items():
        # 只处理配置了stage且stage匹配的任务
        job_stage = job_params.get('stage')
        if job_stage == target_stage:
            print(f"匹配到任务:{job_name},开始执行")
            # 这里写你的任务执行逻辑,比如调用对应任务函数
            # run_job(job_name, job_params)
        else:
            print(f"跳过任务:{job_name},stage不匹配或未配置stage")

if __name__ == "__main__":
    # 替换为你的实际文件路径
    filter_and_run_jobs("jobs.yaml", "requirements.yaml")

基于示例配置的运行结果

你提供的示例中需求stage为AV,运行后输出如下:

匹配到任务:jobx,开始执行
跳过任务:joby,stage不匹配或未配置stage
跳过任务:jobxyz,stage不匹配或未配置stage

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:45:04