循环访问 API 请求以记录值

我是p

我正在使用一个对请求结果进行分页的 API,该 API 还方便地生成了一些包含分页信息的“超媒体”值;这些值之一是“next_page”。

我正在尝试创建一个接受请求的循环,记录此“next_page”值,然后使用“next_page”的值运行另一个请求,并记录下一页,依此类推,直到“next_page”的值= '无'。

到目前为止,这是我的功能,但这只是填充列表中的一项,而应该有 3。

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”?

坦泽尔·乌拉赫曼

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

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!")

或者您可以使用此简化版本,这也适用于您的情况

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!")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

php foreach循环在循环外访问值

来自分类Dev

循环遍历ILookup,访问值

来自分类Dev

访问python获取循环值

来自分类Dev

访问python获取循环值

来自分类Dev

Google时区API:请求循环

来自分类Dev

Python 循环 JSON API 请求

来自分类Dev

Tumblr API:请求只读访问

来自分类Dev

在Java中的while循环中访问值?

来自分类Dev

在循环期间访问KV对中的值

来自分类Dev

直接在for循环中访问矩阵值

来自分类Dev

如何使用循环访问值隐藏元素

来自分类Dev

C#.NET WEB API:循环文件上传位置可以通过各种异步HTTP请求进行访问和修改

来自分类Dev

循环使用可变 URL 的 api get 请求

来自分类Dev

访问Facebook Ads API请求错误270

来自分类Dev

Instagram API访问令牌请求失败

来自分类Dev

使用访问令牌请求 Bitbucket API

来自分类Dev

如何从循环中的子记录访问直接父记录?

来自分类Dev

从Java中的Nasa Neo API使用嵌套的for循环访问数据

来自分类Dev

如何在Rails中记录API请求?

来自分类Dev

请求的API平台日志记录头

来自分类Dev

从Docker容器记录PHP API请求信息

来自分类Dev

发送请求访问flipkart / amazon卖方API CAKEPHP的卖方API

来自分类Dev

发送请求访问flipkart / amazon卖方API CAKEPHP的卖方API

来自分类Dev

无法从父 for 循环记录值

来自分类Dev

API 和循环迭代值不匹配

来自分类Dev

如何访问从API调用返回的对象的值

来自分类Dev

访问 API JSON 响应值

来自分类Dev

迭代(for循环)ms使用过去的值进行访问

来自分类Dev

如何从多维数组访问值并循环触发查询?