如何从JSON获取分支名称?

2024-10-03 04:37:00 发布

您现在位置:Python中文网/ 问答频道 /正文

{
    "_class": "org.jenkinsci.plugins.workflow.job.WorkflowRun",
    "actions": [
        {
            "date": "xyz",
            "lastBuiltRevision": {
                "branch": [
                    {
                        "SHA1": "5213affe970c86cd6e13b9d0e52515ac53f46aae",
                        "name": "feature/demo"
                    }
                ]
            }
        },
        {
            "date": "abc",
            "lastBuiltRevision": {
                "branch": [
                    {
                        "SHA1": "ca7972a32cc28304c22c98ceabf8e349fbf1a100",
                        "name": "refs/remotes/xyz/feature/demo_xyz"
                    }
                ]
            }
        },
        {
            "date": "kkk",
            "lastBuiltRevision": {
                "branch": [
                    {
                        "SHA1": "433d2ec97cdd1ca01c352aa0b8510e0a8f93fa0c",
                        "name": "refs/remotes/abcd/feature/demo_abcd"
                    }
                ]
            }
        }
    ]
}

JSON对象对于Jenkins multibranch管道来说太长了,所以我从JSON中分割了一些有限的对象

使用上面的JSON对象,如何从JSON中为特定的name获取唯一的namesha1

我需要如下结果:

refs/remotes/abcd/feature/demo_abcd:433d2ec97cdd1ca01c352aa0b8510e0a8f93fa0c

Tags: 对象nameorgbranchjsondatedemosha1
1条回答
网友
1楼 · 发布于 2024-10-03 04:37:00

以下是其中一种方法:

data = {
    "_class": "org.jenkinsci.plugins.workflow.job.WorkflowRun",
    "actions": [
        {
            "date": "xyz", 
            "lastBuiltRevision": {
            "branch": [
                {
                    "SHA1": "5213affe970c86cd6e13b9d0e52515ac53f46aae", 
                    "name": "feature/demo"
                }
            ]
            }
        },
        {
            "date": "abc", 
            "lastBuiltRevision": {
            "branch": [
                {
                    "SHA1": "ca7972a32cc28304c22c98ceabf8e349fbf1a100", 
                    "name": "refs/remotes/xyz/feature/demo_xyz"
                }
            ]
            }
        },
        {
            "date": "kkk", 
            "lastBuiltRevision": {
            "branch": [
                {
                    "SHA1": "433d2ec97cdd1ca01c352aa0b8510e0a8f93fa0c", 
                    "name": "refs/remotes/abcd/feature/demo_abcd"
                }
            ]
            }
        }
    ]
}
branch_name = "refs/remotes/abcd/feature/demo_abcd"
for actions in data['actions']:
    for branch_data in actions.get('lastBuiltRevision', {}).get('branch', {}):
        if branch_data.get('name') == branch_name:
            print (f"NAME: {branch_data['name']}, SHA1: {branch_data['SHA1']}")

输出:

NAME: refs/remotes/abcd/feature/demo_abcd, SHA1: 433d2ec97cdd1ca01c352aa0b8510e0a8f93fa0c

相关问题 更多 >