Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python进行Restful分页_Python_Rest_Pagination - Fatal编程技术网

用python进行Restful分页

用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(

我使用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("https://api.somesite.com/v0/someLink?api_key=aaabbbccc&nextPage=someCode"))
等等,直到我看完所有的页面

python是否有任何内置机制来处理这样的分页

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

  • 如何处理每一页的等待,以便我知道我可以继续下一个电话
  • 如何处理“无更多页面”事件而不出错
  • 如何在进行所有调用后将所有调用的结果合并为一个变量
  • 欣赏任何关于最优雅方式的想法

    python是否有任何内置机制来处理这样的分页

    没有

    当为True时编写
    循环,如果没有更多的页面要加载,则使用
    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

    谢谢-这非常有效,稍后我将查看请求模块