我是一名新程序员,我正在尝试调用 Github API 来获取最受加星标的 Python 项目列表(按星数排序)。每次我运行程序、重新运行请求时,我都不会得到相同的结果。将所有内容放入数据框中并按星星数量排序,程序的每次运行都会给我一个不同的数字。我不确定我的代码是否做错了什么或者不理解 github api。
```
query_url = "https://api.github.com/search/repositories?q=language:python&sort=stars&order=desc"
headers = {'Authorization': f'token {API_KEY}'}
r = requests.get(query_url, headers=headers)
result = r.json() # pprint(r.json())
```
问题:分页
解决方案:对所有页面进行排序 代码:
def fetch_all_pages(url, headers):
all_items = []
page = 1
while True:
response = requests.get(url, headers=headers, params={'q': 'language:python', 'sort': 'stars', 'order': 'desc', 'page': page})
if response.status_code != 200:
print(f"Error: {response.status_code}")
return None
result = response.json()
items = result.get('items', [])
if not items:
break
all_items.extend(items)
page += 1
return all_items