我从一个已分页的端点发出请求,该端点正确地只返回第一个页面,并带有指向第二个页面的链接。我想一次返回所有数据。
这是我的代码
response = requests.get("https://swapi.dev/api/starships/")
我试过?max=26和?limit=26但没有运气。
样本响应:
{
"count": 36,
"next": "http://swapi.dev/api/starships/?page=2",
"previous": null,
"data": [
{
"MGLT": "60",.....}
]
}
请问我如何一次返回所有36个元素?
也许不是最漂亮的解决方案,但有效:
import requests
if __name__ == '__main__':
starships = list()
next_url = 'https://swapi.dev/api/starships/?page=1'
while next_url:
query_results = requests.get(next_url).json()
starships.extend(query_results['results'])
next_url = query_results['next']