【问题标题】:How to get branch name from JSON? [closed]如何从 JSON 中获取分支名称? [关闭]
【发布时间】:2021-10-14 13:30:42
【问题描述】:
{
    "_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 多分支管道来说太长了,所以我从 JSON 中删除了一些有限的对象。

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

我需要如下结果:

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

【问题讨论】:

  • 你用过的“下面的代码”在哪里?
  • JSON 的缩进有点误导。 "branch" 应该比 "lastBuiltRevision" 缩进更多
  • 我对你的问题投了反对票,因为no attempt was made

标签: python json


【解决方案1】:

这是其中一种方法:

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

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 2021-11-26
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多