用python进行Restful分页
我使用Python通过RESTAPI调用获取数据,如下所示用python进行Restful分页,python,rest,pagination,Python,Rest,Pagination,我使用Python通过RESTAPI调用获取数据,如下所示 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(
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是否有任何内置机制来处理这样的分页
我可以自己写一个笨拙的循环,但我不确定
:
循环,如果没有更多的页面要加载,则使用break
语句
如何处理每一页的等待,以便我知道我可以继续下一个电话
urllib2.urlopen
不是异步的。您的代码将阻塞(即等待),直到请求完成
如何处理“无更多页面”事件而不出错
这取决于您使用的API。我希望result.nextPage
在最后一页是空的/没有设置
如何在进行所有调用后将所有调用的结果合并为一个变量
在运行时将它们附加到列表中。伪代码:
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
我衷心建议您使用,而不是非常简单的
urllib2.urlopen
谢谢-这非常有效,稍后我将查看请求模块