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编辑响应以回答您的问题。编辑以修复键入错误