gpt4 book ai didi

python - 使用 python 进行安静的分页

转载 作者:行者123 更新时间:2023-12-01 01:24:54 25 4
gpt4 key购买 nike

我正在通过 REST API 调用使用 Python 获取数据,如下所示...

result = json.load(urllib2.urlopen("https://api.somesite.com/v0/someLink?api_key=aaabbbccc"))

API 中内置了最多 100 个结果,因此我必须使用 Python 进行分页。

进行第一次调用后,result.nextPage 返回一个代码,然后我必须将其传递给下一个 API 调用,例如...

result2 = json.load(urllib2.urlopen("https://api.somesite.com/v0/someLink?api_key=aaabbbccc&nextPage=someCode"))

依此类推,直到我读完所有页面。

Python有没有内置的机制来处理这样的分页?

我可以自己写一个笨拙的循环,但不确定

  1. 如何处理每个页面的等待,以便我知道我可以继续下一个调用
  2. 如何处理“不再有页面”事件而不出错
  3. 如何在进行所有调用后将所有调用的结果合并到 1 个变量中

感谢您对以最优雅的方式实现这一目标的任何想法。

最佳答案

Does python have any in-built mechanism to handle pagination like this?

没有。

如果没有更多页面需要加载,请编写一个带有 break 语句的 while True: 循环。

How to handle waiting for each page so I know I can proceed with the next call

urllib2.urlopen 不是异步的。您的代码将阻塞(即等待),直到请求完成。

How to handle the 'no more pages' event without erroring

这取决于您使用的 API。我希望 result.nextPage 为空/未在最后一页上设置。

How to combine the results of all calls into 1 variable after making all calls

随时将它们添加到列表中。伪代码:

url = "initial URL"
results = []

while True:
current_page = request(url)
results.append(current_page)
if (another page available):
url = "new url with next page code"
else:
break

我竭诚建议您使用the requests module而不是非常简单的 urllib2.urlopen

关于python - 使用 python 进行安静的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53456618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com