Здравствуйте. Хочу вывести в отдельный df несколько строк по определенному значению.
Сам запрос:
https://############.amocrm.ru/api/v2/leads?query=...
Проблема в том, что нужные мне значения могут находится не всегда в одном месте. Например:
'ID курса' : testdata['_embedded']['items'][i]['custom_fields'][3]['values'][0]['value']
# будет находится не здесь, а например в
'ID курса' : testdata['_embedded']['items'][i]['custom_fields'][4]['values'][0]['value']
До того как я это понял, написал код, но как будет видно не во всех случаях он будет выдавать нужные поля (скрин красным):
rows_list = []
for i in range(len(testdata['_embedded']['items'])):
dict1 = {}
# Так как в custom_fields нужно не менее 5 полей
if len(testdata['_embedded']['items'][i]['custom_fields']) > 4:
dict1.update({'ID курса' : testdata['_embedded']['items'][i]['custom_fields'][3]['values'][0]['value'],
'Этап сделки' : testdata['_embedded']['items'][i]['status_id'],
'ClientID' : testdata['_embedded']['items'][i]['custom_fields'][4]['values'][0]['value']})
rows_list.append(dict1)
df1 = pd.DataFrame(rows_list)
print(df1)
Из того что я отметил, нашел, что у каждого поля есть уникальный id, но вот чтобы к нему подобраться все равно получается нужно, чтобы значения всегда располагались в одном месте. (скрин 2). Тут он на 3 месте, но в другой сделке может быть на 4 или 5 и тд.