def get_contact(ids):
for id in ids:
template = f'https://etender.gov.az/api/events/{id}/contact-persons'
try:
response = requests.get(template, timeout=20)
if response.status_code == 200:
data_list = response.json()
for data in data_list:
main_data['Full_name'].append(data.get('fullName', 'None') if data.get('fullName') else 'None')
main_data['Contact'].append(data.get('contact', 'None') if data.get('contact') else 'None')
main_data['Position'].append(data.get('position', 'None') if data.get('position') else 'None')
main_data['Phone_number'].append(data.get('phoneNumber', 'None') if data.get('phoneNumber') else 'None')
else:
main_data['Full_name'].append('None')
main_data['Contact'].append('None')
main_data['Position'].append('None')
main_data['Phone_number'].append('None')
except requests.Timeout:
main_data['Full_name'].append('None')
main_data['Contact'].append('None')
main_data['Position'].append('None')
main_data['Phone_number'].append('None')
main_data = []
...
def get_contact(ids):
for id in ids:
current_data = {'Full_name': 'None', 'Contact': 'None', 'Position': 'None', 'Phone_number': 'None'}
template = f'https://etender.gov.az/api/events/{id}/contact-persons'
try:
response = requests.get(template, timeout=20)
if response.status_code == 200:
data_list = response.json()
for (elem_to, elem_from) in [
('Full_name', 'fullName'),
('Contact', 'contact'),
('Position', 'position'),
('Phone_number', 'phoneNumber')
]:
current_data[elem_to] = data.get(elem_from, 'None')
except requests.Timeout:
pass
main_data.append(current_data)
explode
например поможет избавится от списков. В целом одна и та же информация, может быть представлена в разном виде и в реляционных бд предпочтительнее (но не обязательно) иметь простые типы данных. to_pickle
, и соответственно read_pickle
для чтения. (
pd.DataFrame({
'A':[1,2,3],
'B':[100,200]
})
)
(
pd.DataFrame({
'A':pd.Series([1,2,3]),
'B':pd.Series([100,200])
})
)
Не достающий элемент он заполнит пропущенным значением. {
"currentPage": 1,
"totalPages": 173,
"pageSize": 15,
"itemsInPage": 15,
"totalItems": 2591,
"items": [
{
"eventId": 314749,
"eventType": 7,
"eventStatus": 1,
"buyerOrganizationName": "NAXÇIVAN MUXTAR RESPUBLİKASI QAZ İSTİSMAR XİDMƏTİ",
"eventName": "Qaz tikinti quraşdırma materialları və avadanlıqlarının satınalınması",
"publishDate": "2024-08-27T19:50:59",
"endDate": "2024-09-18T18:00:00",
"hasNewVersion": false,
"awardedParticipantName": null,
"awardedParticipantVoen": null,
"documentViewType": 0,
"actualVersionId": 0,
"privateRfxId": 93247
}
.....
]
}