Мой запрос API Get может дать мне не более 100, как зациклить его, чтобы я мог получить все элементы?

#python #api #swagger

#питон #API #развязность

Вопрос:

ИТАК, я работаю над получением всех элементов из API с помощью Python3, проблема в том, что когда я запускаю скрипт, он показывает мне только 100 , в то время как я знаю, что их больше 1000.

Я попытался использовать цикл while, но потерпел неудачу, повторив те же результаты

 import requests
import json
def get_list_call(offset): 

    url = "https://link.com/monitoring/v1/switches"

    querystring = {"limit":"%s"%limit,"offset":"%s"% offset}
    headers = {
        'Authorization': "Bearer Token",
        'cache-control': "no-cache",
        }

    response = requests.request("GET", url, headers=headers,params=querystring)

    return(response.text)

result = get_list_call(0)
data_json = json.loads(result)
count = (data_json['count'])
print (count)

 

Я вижу результаты по 20 пунктам
и считаю = 20

Комментарии:

1. Не похоже, что вы добавляете строку запроса к URL-адресу в любой момент перед отправкой запроса?

2. Спасибо ,,, Я отредактировал вопрос ,, дело в том, что каждый раз, когда я его запускаю, я получаю один и тот же список из 100 элементов (переключателей), поэтому я называю его (get_list_call) функцией, чтобы зациклить его и получить больше ,,, Я получаю бесконечный цикл для одного и того же списка.

3. Посмотрите документацию по API. они могут быть ограничены максимум 100, а затем использовать какую-то функцию подкачки, чтобы вы могли запросить следующий пакет.

Ответ №1:

Спасибо, ребята, за комментарии, так что я смог использовать флаг total в API, чтобы показать мне общее количество элементов, затем я использовал цикл while, чтобы получить их все.

Спасибо