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

如何从JSON中过滤空对象空数组 提取Jenkins构建分支SHA1信息

Jenkins JSON 数据过滤解决方案

你可以直接在遍历逻辑中增加前置判断自动过滤无效数据,无需提前手动修改原始JSON文件,完整实现代码如下:

import json

with open('jenkinsBuild.json') as f:
    data = json.load(f)

target_branch = "refs/remotes/xyz/feature/demo_xyz"

for action in data['actions']:
    # 过滤空对象,对应问题1
    if not action:
        continue
    # 过滤不含lastBuiltRevision字段的对象,对应问题2
    if 'lastBuiltRevision' not in action:
        continue
    # 过滤空branch数组,对应问题3
    branch_list = action['lastBuiltRevision'].get('branch', [])
    if not branch_list:
        continue
    # 匹配目标分支
    for branch_data in branch_list:
        if branch_data.get('name') == target_branch:
            print(f"Name: {branch_data['name']}, SHA1: {branch_data['SHA1']}")

逻辑说明

  • 空对象判断:Python中{}空字典的布尔值为False,if not action会直接跳过所有空对象
  • 字段存在性判断:通过in关键字判断字典是否包含指定key,不存在就直接跳过当前对象,避免取key时报KeyError
  • 空数组判断:用字典的get方法取branch字段时设置默认空数组,再判断数组长度是否为0,空数组直接跳过不会进入内层遍历
    另外代码中使用branch_data.get('name')而非直接取branch_data['name'],也可以避免部分分支数据缺名字段的报错问题,兼容性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:39:03