Я пытаюсь вызвать API-интерфейс Python, чтобы получить набор результатов, который составляет около 21 500 записей с ограничением PageSize или по умолчанию на 4000 записей. Я также не знаю общего количества страниц, и нет ссылок «next_url» или «last_page_url». Единственное данное - это общее количество результатов, которое равно 21205, и я могу разделить его на предел PageSize 4000, равный 5,30125 страниц.
Есть 2 возможных способа, как я думаю, просто я не уверен, как поместить это в код.
Сначала выполните цикл while, чтобы увидеть, установлен ли результат = PageSize of 4000, чем перебрать другую страницу.
Во-вторых, для каждого цикла, и если общее количество страниц равно 5,3, округлите его до 6, чтобы получить все записи и разбить их на страницы. =+1
Наконец, мне нужно добавить все записи в фрейм данных ta pandas, чтобы я мог экспортировать в sql таблица. Любая помощь приветствуется.
url = "https://api2.enquiresolutions.com/v3/?Id=XXXX&ListId=161585&PageSize=4000"
auth = { 'Ocp-Apim-Subscription-Key': 'XXX', 'Content-Type': 'application/json'}
params = {'PageNumber': page}
res = requests.get(url=url, headers=auth, params=params).json()
df = pd.DataFrame(res['result'])
total_result= df['total'][0]
total_pages = int(total_result) /4000
properties = json_normalize(df['individuals'],record_path=['properties'],meta=
['casenumber','individualid','type'])
properties['Data'] = properties.label.str.cat(properties.id,sep='_')
properties = properties.drop(['label','id'],axis=1)
pivotprop = properties.pivot(index='individualid', columns='Data', values='value')
data = pivotprop.reset_index()
data.to_sql('crm_Properties',con=engine, if_exists='append'