我正在使用一个对请求结果进行分页的API,该API还可以方便地生成一些包含分页信息的“hypermedia”值;其中一个值是“next_page”。
我正在尝试创建一个循环,该循环接受一个请求,记录这个'next_page‘值,然后使用' next _ page’值运行另一个请求,并记录下一个页面,依此类推,直到'next_page‘值= 'None’为止。
到目前为止,这是我的函数,但它只填充了列表中的一项,而实际上应该有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'?
发布于 2019-08-08 23:49:23
您可以使用以下修改后的代码
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!")https://stackoverflow.com/questions/57416000
复制相似问题