@25hp

Как через API AMOCRM вывести определенные значения?

Здравствуйте. Хочу вывести в отдельный 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)

5d23645c84a6d232945604.png

Из того что я отметил, нашел, что у каждого поля есть уникальный id, но вот чтобы к нему подобраться все равно получается нужно, чтобы значения всегда располагались в одном месте. (скрин 2). Тут он на 3 месте, но в другой сделке может быть на 4 или 5 и тд.5d236463d1d3e345199997.png
  • Вопрос задан
  • 288 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы