如何使用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
是当前键,即当前页面,在结果中必须有总页面或计数