我正在尝试通过调用 API 从 Gitlab 提取合并请求数据。我将
per_page
之后的值更改为更高的数字,但是它不起作用,并且仍然只获得 100 行,而我有更多行。这是我当前使用的代码。有谁知道如何增加迭代次数?
#Import libraries
import os
import pandas as pd
import requests
from dotenv import load_dotenv
import csv
import json
load_dotenv()
# Assign variables from .env
pat = os.getenv("PAT")
gitlab_url = os.getenv("HOST_URL")
# Set the API endpoint to get MRs
api_url = f"{gitlab_url}/api/v4/merge_requests?scope=all&state=all&per_page=100"
# Add your Personal Access Token to the request headers
headers = {"Private-Token": pat}
# Send the API request and get the response
response = requests.get(api_url, headers=headers)
merge_requests = response.json()
df = pd.DataFrame(merge_requests)
df.info()
df.to_excel("merge_requests.xlsx", index=False)
我尝试更改页数,当我增加页数时,它会减少行数。
默认情况下,列出端点的请求是分页的。如文档中所述,列出资源时,您可以传递以下参数:
因此您的代码很好,但您只能从第一页获取值。 尝试传递其他页面的值。
更改最后的代码行(注意
&page=2
):
api_url = f"{gitlab_url}/api/v4/merge_requestsscope=all&state=all&per_page=100&page=2"
您已经迭代了所有页面以获得完整列表。页数在 x-total-pages 标题中返回