首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >遍历API请求以记录值

遍历API请求以记录值
EN

Stack Overflow用户
提问于 2019-08-08 23:24:28
回答 1查看 37关注 0票数 0

我正在使用一个对请求结果进行分页的API,该API还可以方便地生成一些包含分页信息的“hypermedia”值;其中一个值是“next_page”。

我正在尝试创建一个循环,该循环接受一个请求,记录这个'next_page‘值,然后使用' next _ page’值运行另一个请求,并记录下一个页面,依此类推,直到'next_page‘值= 'None’为止。

到目前为止,这是我的函数,但它只填充了列表中的一项,而实际上应该有3项。

代码语言:javascript
复制
pages = []
def build_requests(request):
    request = 'https://api.performancehorizon.com'+request
    job = requests.get(request, headers=headers, params=params)
    req = job.json()

    hypermedia_np = req['hypermedia']['pagination']['next_page']

    if hypermedia_np != 'None':
        next_page = req['hypermedia']['pagination']['next_page']
        pages.append(next_page)
        job = requests.get('https://api.performancehorizon.com'+next_page, headers=headers, params=params)
        req = job.json()
    else: print("Done!")

如何更改代码以循环此作业,直到'next_page‘的值为'None'?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-08 23:49:23

您可以使用以下修改后的代码

代码语言:javascript
复制
pages = []
def build_requests(request):
    request = 'https://api.performancehorizon.com' + request
    job = requests.get(request, headers=headers, params=params)
    req = job.json()

    hypermedia_np = req['hypermedia']['pagination']['next_page']

    while hypermedia_np is not None or hypermedia_np != 'None':
        next_page = req['hypermedia']['pagination']['next_page']
        if next_page is not None or next_page != 'None':
            pages.append(next_page)
            job = requests.get('https://api.performancehorizon.com' + next_page, headers=headers, params=params)
            req = job.json()
            hypermedia_np = req['hypermedia']['pagination']['next_page']
        else:
            hypermedia_np = None
    print("Done!")

或者你可以使用这个简化的版本,这应该也适用于你的情况

代码语言:javascript
复制
pages = []
def build_requests(request):
    request = 'https://api.performancehorizon.com' + request
    job = requests.get(request, headers=headers, params=params)
    req = job.json()

    hypermedia_np = req['hypermedia']['pagination']['next_page']

    while hypermedia_np is not None or hypermedia_np != 'None':
        pages.append(hypermedia_np)
        job = requests.get('https://api.performancehorizon.com' + hypermedia_np, headers=headers, params=params)
        req = job.json()
        hypermedia_np = req['hypermedia']['pagination']['next_page']

    print("Done!")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57416000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档