如何使用Python3&;插入API分页;请求?
我使用请求进行API调用,并得到JSON响应。API限制为每页20个结果。我可以毫无问题地访问第一页,但是我不知道如何在查询中包含分页。在页面底部的JSON响应中,它提供了以下信息如何使用Python3&;插入API分页;请求?,python,python-3.x,pagination,python-requests,Python,Python 3.x,Pagination,Python Requests,我使用请求进行API调用,并得到JSON响应。API限制为每页20个结果。我可以毫无问题地访问第一页,但是我不知道如何在查询中包含分页。在页面底部的JSON响应中,它提供了以下信息 }, "_links":{ "first":{ "href":"https://search-lastSale?date=20190723-20190823&page=0&size=20 }, "last":{ "href":"https://search-lastSal
},
"_links":{
"first":{
"href":"https://search-lastSale?date=20190723-20190823&page=0&size=20
},
"last":{
"href":"https://search-lastSale?date=20190723-20190823&page=4&size=20
},
"next":{
"href":"https://search-lastSale?date=20190723-20190823&page=1&size=20
},
"self":{
"href":"https://search-lastSale?date=20190723-20190823&page=0&size=20
}
},
"page":{
"number":0,
"size":20,
"totalElements":77,
"totalPages":4
}
我已经阅读了网站上的文档以及其他各种文章和帖子,但每件事似乎都非常特定于人们自己的API
我已经将我的代码恢复到一个URL请求,以及旧的auth令牌,以便我能够掌握它,然后重新缩放到现有的项目。代码如下:
url = "https://search-api.corelogic.asia/search/au/property/postcode/401249/lastSale"
querystring = {"page":"0","size":"20","date":"20190723-20190823"}
headers = {
'Content-Type': "application/JSON",
'Authorization': "My Token"}
response = requests.request("GET", url, headers=headers, params=querystring)
print(response.text)
据我从文件和阅读中了解,我应该做的是:
if 'totalPages = [4]
https:www.search/page0
https:www.search/page1
https:www.search/page2
https:www.search/page3
https:www.search/page4
循环遍历每个URL并附加JSON文件;或While json.response = ['next']
keep getting data
append to open json file
这两种方法都有意义,但是我看不出这种分页在代码中的位置 如您所见,在您收到的响应中有
\u链接
dict
,您可以使用href
内的下一页
或者,您可以尝试手动生成这些URL:
>>> def paged_url(page: int=0, size=20) -> str:
... return ("https://search-lastSale?date=20190723-20190823&"
... f"page={page}&size={size}")
...
>>> paged_url(1)
'https://search-lastSale?date=20190723-20190823&page=1&size=20'
>>> paged_url(2)
'https://search-lastSale?date=20190723-20190823&page=2&size=20'
>>> paged_url(3, 10)
'https://search-lastSale?date=20190723-20190823&page=3&size=10'
这些URL包含您应该获取的下一页。是的,您一直在调用“下一页”链接。现在还不清楚你说的“where”是什么意思。嗨@jornsharpe-谢谢你的问题编辑,我想我没有意识到键盘上有多少挫折感!。关于“where”-我似乎找不到任何添加代码的方法。例如:目前,我正在尝试在响应时使用以下代码。链接[“下一步”]!=response.links[“last”]:r=requests.get(r.links[“next”],headers=headers,params=querystring)raw=r.json(),用于raw:results.append(i)中的i作为一个片段-我得到下面的错误键error:“next”,然后在问题中添加一个。但错误信息很清楚:在某一点上,没有“下一个”链接。