为了账号安全,请及时绑定邮箱和手机立即绑定

循环访问 API 请求以记录值

循环访问 API 请求以记录值

皈依舞 2022-04-27 13:22:23
我正在使用一个对请求结果进行分页的 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”?
查看完整描述

1 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

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


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


查看完整回答
反对 回复 2022-04-27
  • 1 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号