Доступ к элементу вложенного словаря, который находится в списке нескольких других словарей - PullRequest
0 голосов
/ 26 февраля 2020

Я перебираю очень большой вложенный словарь (изначально json), чтобы переименовать некоторые ключи. На данный момент мне удалось пролистать каждый элемент списка внутри словаря, который находится в списке (он находится внутри еще одного словаря), один за другим. Количество элементов в списке различно для каждого из элементов в главном словаре (json).

Нижеследующее работает, но не масштабируется.

for el in a:
  el['name']['info'][0]['details'] = el['name']['info'][0].pop('DT')
  el['name']['info'][1]['details'] = el['name']['info'][1].pop('DT')

Я тоже пробовал, похоже, не работает:

for el in a:
  el['name']['info']['details'] = el['name']['info'].pop('DT')

Могу ли я написать что-нибудь, что применило бы изменения ко всем элементам в списке этих словарей?

1 Ответ

1 голос
/ 26 февраля 2020

Расширение того, что сказал TrebledJ в своем комментарии, даст вам что-то вроде:

a = [{
        'name': {
            'info': [
                {'DT': 'abc'},
                {'DT': 'def'}
            ]
        }
    }]

print(a)


for el in a:
    for info_el in el['name']['info']:
        info_el['details'] = info_el.pop('DT')

print(a)

имеет вывод:

[{'name': {'info': [{'DT': 'abc'}, {'DT': 'def'}]}}]
[{'name': {'info': [{'details': 'abc'}, {'details': 'def'}]}}]
...