已经有一个分页查询的接口了怎么基于分页查询接口做一个全量下载的接口?具体代码演示
假设我们已经有一个分页查询的接口,返回的数据结构如下:
{
"total": 100,
"page": 1,
"pageSize": 20,
"data": [
{
"id": 1,
"name": "张三"
},
{
"id": 2,
"name": "李四"
}
]
}
现在需要基于这个接口实现一个全量下载的接口,具体思路如下:
- 调用分页查询接口,获取第一页的数据;
- 判断总记录数是否大于每页记录数,如果是,则继续调用分页查询接口获取下一页的数据,直到所有数据都被获取;
- 将所有数据合并成一个数组,并返回给客户端。
具体代码实现如下:
import requests
def download_all(url):
page = 1
pageSize = 20
data = []
while True:
resp = requests.get(url, params={"page": page, "pageSize": pageSize})
if resp.status_code != 200:
raise Exception("Failed to download data")
result = resp.json()
data += result["data"]
if len(data) >= result["total"]:
break
page += 1
return data
这个函数接受一个分页查询的接口URL作为参数,返回一个包含所有数据的数组。调用方法如下:
data = download_all("https://example.com/api/query")
这个函数会自动根据分页查询接口返回的数据进行多次请求,直到所有数据都被获取。注意,这个函数没有对错误进行处理,实际应用中需要根据具体情况进行修改
原文地址: https://www.cveoy.top/t/topic/hsKM 著作权归作者所有。请勿转载和采集!