Python 分页API良好实践
我的主要职能是:Python 分页API良好实践,python,flask,Python,Flask,我的主要职能是: def get_data(): try: response = send_request_to_get_data() // will get one dict output looks like : { "data": ['some datas.....'], "next": "api/data?top=100&skip=200", } i
def get_data():
try:
response = send_request_to_get_data()
// will get one dict output looks like :
{
"data": ['some datas.....'],
"next": "api/data?top=100&skip=200",
}
if response.status_code == 200:
if response.json().get("next"):
first_paginated_response = get_paginated_data(response.json().get("next"))
if response.status_code == 200:
if first_paginated_response.json().get("next"):
second_paginated_response = get_paginated_data(response.json().get("next"))
if response.status_code == 200:
if second_paginated_response.json().get("next"):
print('again...again....again....again...again)
def send_request_to_get_data():
return rq.get('https://example.com')
def get_paginated_data(paginated):
url = "https://example.com/{next}".format(next=paginated)
return rq.get(url)
若“next”键有响应,我需要发送另一个分页api请求,但我的If语句看起来很奇怪
什么是最好的方法?您可以在
的同时循环并保存数据,如下所示:
response = send_request_to_get_data()
data = response['data']
while response.status_code == 200 and response.json().get("next"):
response = get_paginated_data(response.json().get("next"))
data.extend(response['data'])
如何在同一列表中追加响应和分页的_响应输出?这取决于数据的性质(response['data']
)。您可以在开始时设置data=[]
,然后使用data.extend(response['data'])
response.json().get(“next”)在我的第一个响应中始终可用,因此,当循环执行相同的内容时,我需要从第二个分页的\u响应中获取下一个响应?@MohamedSameer编辑响应以回答您的问题。编辑以修复键入错误