【问题标题】:Iterating through Jira API Url遍历 Jira API Url
【发布时间】:2021-12-20 22:22:54
【问题描述】:

我在迭代 Jira API 时遇到问题。我的目标是迭代直到我提取 response['total']这是 7,000 条记录。我的maxResults 是每个请求 1,000 个。

我在maxResults 上收到了成功的响应(状态代码= 200)和正确的1,000,但我没有更新我的startAt,它从0 开始,但我希望加起来最大结果。我的目标是遍历 Jira API 以提取所有 7,000 条记录并将它们作为数据帧附加在一起。

baseUrl= https://example.com/rest/api/2/search?jql=issuetype='Story'
total = 1
maxResults = 0
startAt = 0

while (startAt + maxResults) < total:
            data = []
            response = requests.get((baseUrl+'&startAt='+str(startAt + maxResults)), auth = (username, password))
            print(response.status_code)
            r = response.json()
            jiraIssues = r["issues"]

          
            for issue in issues:

                results_1= json.dumps((issues), sort_keys= True,indent = 4)

                results_2 =json.loads(results_1)

                results_3 = pd.json_normalize(results_2)

                data.append(results_3)

      
                print (len(issues))

                print (startAt)

                print("----------")

                maxResults = response['maxResults']

                total = response['total']

                startAt = response['startAt']

            else:

                break

                print("none")

【问题讨论】:

    标签: python api loops while-loop jira


    【解决方案1】:

    为了遍历 API 结果,您需要通过在每次 while 循环迭代结束时添加 maxResults 来增加您的 startAt 参数:

    startAt = startAt + maxResults
    

    startAt 参数表示从 API 调用检索结果时开始的结果编号 - 将其视为“页面”参数。每个连续的 API 调用都必须请求结果的下一个“页面”,以便遍历并到达结果的末尾。

    【讨论】:

      猜你喜欢
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 2018-08-27
      相关资源
      最近更新 更多