Я работаю со списком вложенных словарей JSON и пытаюсь извлечь строки из вложенных словарей 2-го уровня и сделать их парами k: v 1-го уровня.Пример исходных данных:
data = [{"account #":"54566549", "balance":{"dollars":"684", "euros":"654"}}
{"account #":"13251462", "balance":{"dollars":"123", "euros":"111"}}
{"account #":"99871111", "balance":{"dollars":"155", "euros":"422"}}]
То, что я пытаюсь сделать, это вытащить вложенные словари «баланс» так, чтобы был просто список словарей с тремя парами k: v для счета №, долларов,и евро, как это:
[{"account #":"54566549", "dollars":"684", "euros":"654"}
{"account #":"13251462", "dollars":"123", "euros":"111"}
{"account #":"99871111", "dollars":"155", "euros":"422"}]
Это работает по одному за раз так:
data[0]['dollars'] = data[0]['balance']['dollars']
Но выполнение этого в цикле приводит к ошибке "индексы списка должны быть целыми числами или слайсами, а не dict ":
for k in data:
data[k]['dollars'] = data[k]['balance']['dollars']
Кажется, проблема в том, что я ссылаюсь на dict ('баланс') в цикле, что недопустимо, но как еще можно ссылаться на это строковое значение для вложенноговведите «доллары» и запишите его в новый ключ «доллары», который является частью словаря 1-го уровня?
Также после того, как это сделано для долларов + евро, можно ли безопасно удалить исходные словари «баланса»как хорошо?