Python Генератор внутри for-l oop из запроса API - PullRequest
0 голосов
/ 12 июля 2020

Недавно я узнал о генераторах Python и их преимуществах памяти / эффективности по сравнению со списками. Я думаю, что генераторы - хороший кандидат для моего проекта, но я не совсем уверен, как его реализовать в этом случае:

У меня есть данные, поступающие из API в XML, которые являются unix отметками времени ( ЕТС). API имеет лимит вызовов 1000, однако мне нужно вытащить из него около 50 000 баллов. У меня есть for l oop, который вызывает API и добавляет следующие 1000 значений в список (listOfUTS), пока не будут сохранены все данные:

listOfUts = []
query = f'{apiUrl}?method={method}&user={user}&from={unixFrom}&to={unixTo}&limit=1000&api_key={apiKey}'
r = requests.get(query)
decoded = r.content.decode("utf-8")
root = ET.fromstring(decoded)
for i in root:
        listOfUts.append(int(root[0][i][10].text))

Затем эта функция повторяется со следующим диапазоном unix значений времени до тех пор, пока не будет исчерпан XML возврат.

Будет ли это подходящим местом для использования генератора, и как я могу записать это с помощью генератора? Если это помогает, я использую список UTS для создания «кумулятивного» линейного графика с использованием диаграммы JS в Flask, где время находится на оси x, а значения оси y получают +1 для каждой записи.

...