基于分页查询接口实现全量下载功能 - Python 代码示例
基于分页查询接口实现全量下载功能 - Python 代码示例
假设我们已经有一个分页查询的接口,返回的数据结构如下:
{
'total': 100,
'page': 1,
'pageSize': 20,
'data': [
{
'id': 1,
'name': '张三'
},
{
'id': 2,
'name': '李四'
}
]
}
现在需要基于这个接口实现一个全量下载的接口,具体思路如下:
- 调用分页查询接口,获取第一页的数据;
- 判断总记录数是否大于每页记录数,如果是,则继续调用分页查询接口获取下一页的数据,直到所有数据都被获取;
- 将所有数据合并成一个数组,并返回给客户端。
Python 代码实现
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')
这个函数会自动根据分页查询接口返回的数据进行多次请求,直到所有数据都被获取。注意,这个函数没有对错误进行处理,实际应用中需要根据具体情况进行修改。
总结
本文介绍了如何基于已有的分页查询接口实现一个全量下载接口,并提供了 Python 代码示例。该方法适用于需要从分页接口中获取所有数据的场景。
原文地址: https://www.cveoy.top/t/topic/oVAW 著作权归作者所有。请勿转载和采集!