如何使用python请求处理分页?
我需要关于如何使用如何使用python请求处理分页?,python,python-requests,Python,Python Requests,我需要关于如何使用python请求GET从具有多个页面的api获取数据的帮助 假设api返回current\u key=223132的以下响应 { "result":[ { "aaa": 123, "bbb": 456, ..., ... } ], "next_key": 889182 } import requests import json data_set = [] url = "https://flespi.io/gw/c
python请求GET
从具有多个页面的api获取数据的帮助
假设api返回current\u key=223132的以下响应
{
"result":[
{
"aaa": 123,
"bbb": 456,
...,
...
}
],
"next_key": 889182
}
import requests
import json
data_set = []
url = "https://flespi.io/gw/channels/all/messages"
headers = {"Authorization":"MyToken"}
data = {"limit_count": 100, "limit_size": 1000}
query = {'data': json.dumps(data, separators=(',', ':'))}
r = requests.get(url, headers=headers, params=query)
下一步为current_key=889182
{
"result":[
{
"aaa": 789,
"bbb": 0,
...,
...
}
],
"next_key": 188192
}
如您所见,next_键的值
表示下一页/最新页包含最新数据<代码>当前_键
表示当前页面。
我现在要做的是每次运行请求。get
它将始终检索下一页的数据
我尝试使用下面的脚本,但它总是检索current\u key=223132
{
"result":[
{
"aaa": 123,
"bbb": 456,
...,
...
}
],
"next_key": 889182
}
import requests
import json
data_set = []
url = "https://flespi.io/gw/channels/all/messages"
headers = {"Authorization":"MyToken"}
data = {"limit_count": 100, "limit_size": 1000}
query = {'data': json.dumps(data, separators=(',', ':'))}
r = requests.get(url, headers=headers, params=query)
我在想也许我可以像这样把页面的参数放在data
data = {"limit_count": 100, "limit_size": 1000, "current_key": next_key}
但是我想我可能需要执行请求。在重做请求之前,先获取不带当前_键的参数。获取带当前_键的参数。换句话说,首先获取next_键的值,然后将其插入下一个请求。获取。这似乎是一种不好的做法
有人有更好的主意吗
谢谢你的帮助和建议。非常感谢。如果您的服务没有为您提供总页面或计数:
改变你的大脑,使用另一种解决方案
使用此服务,您可以实现寻呼机
上一页下一页您能列出服务API URI吗?对不起。列出服务API URI是什么意思?分页的常见解决方案是:http://server/your/uri/?pageSize=10&pageNumber=1
你有这样的东西吗?https://flespi.io/gw/channels/all/messages?data=%7B%22curr_key%22%3A223132%2C%22limit_count%22%3A100%2C%22limit_size%22%3A1000%7D
这是完整的url。如您所愿可以看到curr\u key
是当前键,即当前页面,在结果中必须有总页面或计数