Ernesto
@Ernesto
Junior

Почему функция добавляет только последний объект?

Почему функция возвращает только последний объект из запроса ? А не добавляет в словарь data новый

def holdings():
    data = {}
    res = requests.get(BASE_URL)
    res_content = json.loads(res.content)    
    for holding in res_content['data']:
         data['id'] = holding['id']
         data['name'] = holding['attributes']['name']
    return data
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
Dr_Elvis
@Dr_Elvis Куратор тега Python
В гугле забанен
Потому что ты в цикле перезаписываешь словарь по одним и тем же ключам.
Добавь в data пустой список и добавляй туда значения.
def holdings():
    data = {} 
    data['content'] = []
    res = requests.get(BASE_URL)
    res_content = json.loads(res.content)    
    for holding in res_content['data']:
         data_id = holding['id']
         data_name = holding['attributes']['name']
         data['content'].append({'id': data_id, 'name': data_name})
    return data
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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