Это связано с вопросом, который я задавал ранее: как получить все данные из 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
Как получить подмножество данных из API, если я не знаю максимальное количество страниц ⇐ Python
Программы на Python
1733518716
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79258889/how-do-i-get-a-subset-of-data-from-an-api-when-i-dont-know-the-max-number-of-pa[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия