Python:基于条件解析字典数据

2024-09-27 07:17:39 发布

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

我有一些代码,如果标签“ready to merge”和“Validation Succeeded”应用于请求,那么这些代码会将请求输出到控制台。你知道吗

如果与拉请求相关联的文件集中的任何文件的值为'status':'added',我还想通过这些相同的拉请求来打印'True'。你知道吗

下面的代码为每个单独的文件打印结果,但是如果与文件状态相关联的任何文件中满足“added”条件,我希望它只打印一行:True,否则如果集合中没有文件具有“Status”:“added”,则文件状态为False。你知道吗

如果满足labels条件,我尝试使用与输出pull请求标题相同的逻辑,但它不起作用

我希望这有道理。你知道吗

我现在得到的结果是:

Title: updates for blah
Files Status: False
Files Status: False
Files Status: True
Title: updates2
Files Status: False
Files Status: False

基于这些结果,我想要的输出是:

Title: updates for blah
File Status: True
Title: updates2
File Status: False

代码:

for prs in repo.pull_requests():
        getlabels = repo.issue(prs.number).as_dict()

        if 'ready-to-merge' in [getlabels['name'] for getlabels in getlabels['labels']] and 'Validation Succeeded' in [getlabels['name'] for getlabels in getlabels['labels']]:
            changes = repo.pull_request(prs.number).as_dict()
            print("Title: ",changes['title'])

            for data in repo.pull_request(prs.number).files():
                files = data.as_dict()
                if 'added' in [files['status'] for status in files]:
                    print("File Status: True")
                else:
                    print("File Status: False")

遍历与拉请求关联的文件时返回的示例数据。我希望根据“状态”建立条件:“添加”:

[
  {
    "sha": "bbcd538c8e72b8c175046e27cc8f907076331401",
    "filename": "file1.txt",
    "status": "added",
    "additions": 103,
    "deletions": 21,
    "changes": 124,
    "blob_url": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt",
    "raw_url": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt",
    "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e",
    "patch": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test"
  }
]

Tags: 文件代码infalsetrueaddedfortitle

热门问题