Как получить подмножество данных из API, если я не знаю максимальное количество страницPython

Программы на Python
Ответить
Anonymous
 Как получить подмножество данных из API, если я не знаю максимальное количество страниц

Сообщение Anonymous »

Это связано с вопросом, который я задавал ранее: как получить все данные из API, если я не знаю максимального количества страниц.
Я извлекаю данные с помощью API на Python. Я могу отфильтровать ответ, чтобы он возвращал только данные, в которых полученная дата находится между указанной датой начала и окончания, но я не знаю, сколько страниц соответствует этому условию. Я написал код ниже, чтобы решить эту проблему. Кусочки кода работают, но не завершаются, поэтому заканчиваю. Я думаю, это потому, что он проходит через каждую страницу. Могу ли я изменить это, чтобы перебирать только те страницы, которые содержат полученную дату, существующую между датой начала и датой окончания, без циклического прохода по каждой странице?
import requests
import datetime
import json

start_date = datetime.datetime(2016,10,1).isoformat() #convert to ISO-8601 to match the date format of the response
end_date = datetime.datetime(2017,9,30).isoformat()
page_size = 2000
page_number = 1

while True:

data = f'{{"receivedDateFrom":"{start_date}", "receivedDateTo":"{end_date}", "pageSize":{page_size}, "pageNumber":{page_number}}}' # I have confirmed this formating works
response = requests.post(url, headers=headers, verify= True, data=data) #leaving out url and headers because of data privacy concerns, but I have confirmed this works
response_data = response.json()

if not response_data:
break

all_data.extend(response_data)

page_number +=1


Подробнее здесь: https://stackoverflow.com/questions/792 ... mber-of-pa
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»