मेरा मुख्य कार्य:

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)

अगर "अगली" कुंजी प्रतिक्रिया में है, तो मुझे पेजिनेशन एपीआई के लिए एक और अनुरोध भेजने की ज़रूरत है, लेकिन मेरा अगर कथन अजीब लग रहा है।

इसके लिए अच्छा तरीका क्या है?

0
Mohamed Sameer 27 मई 2019, 12:28

1 उत्तर

सबसे बढ़िया उत्तर

आप while लूप का उपयोग कर सकते हैं और डेटा को इस तरह सहेज सकते हैं:

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'])
1
Ricardo Branco 27 मई 2019, 10:21