Как собрать все результаты из веб-API в Python?
Я собираю данные из веб-API с помощью скрипта Python. Веб-API предоставляет максимум 50 результатов ("size":50
). Однако мне нужно собрать все результаты. Пожалуйста, дайте мне знать, как я могу это сделать. Мой исходный код доступен ниже. Заранее спасибо.
def getData():
headers = {
'Content-type': 'application/json',
}
data = '{"size":50,"sites.recruitment_status":"ACTIVE", "sites.org_state_or_province":"VA"}'
response = requests.post('https://clinicaltrialsapi.cancer.gov/v1/clinical-trials', headers=headers, data=data)
print(response.json())
2 ответа
Чтобы добавить к уже полученному ответу, вы можете получить итоговые результаты из исходного json. Затем вы можете использовать цикл для увеличения для партий
import requests
import json
url = "https://clinicaltrialsapi.cancer.gov/v1/clinical-trials"
r = requests.get(url).json()
num_results = int(r['total'])
results_per_request = 50
total = 0
while total < num_results:
total+=results_per_request
print(total)
Все в доке:
https://clinicaltrialsapi.cancer.gov/
ПОЛУЧИТЬ клинические испытания
Фильтрует все клинические испытания на основе предоставленных параметров фильтра. Параметрами фильтра могут быть любые поля схемы, а также любой из следующих параметров...
размер: ограничить количество результатов указанным количеством (по умолчанию 10, максимум 50)
from: начать результаты с предоставленной начальной точки (по умолчанию 0)
...
Так что вам просто нужно указать значение from и увеличить его на 50 на 50.