получить доступ к вложенному словарю, который является значением ключа Python - PullRequest
1 голос
/ 24 апреля 2020

У меня есть вложенные словари в списке, который выглядит следующим образом:

data = [{'ID-1010': {'Id': '0060', 'ID18__c': 'abc'}},
{'ID-1020': {'Id': '0060', 'ID18__c': 'abd'}},
{'ID-1030': {'Id': '0060', 'ID18__c': 'abf'}}]

Мне нужно l oop просмотреть данные, получить значение ключа ID18 __ c и сохранить его в переменной. Я пробовал следующее:

for index, my_dict in enumerate(data):
    my_var = data[{key}['ID18__c']
    print(my_var)

Ключ не определен, как мне получить доступ к значению 'ID18 __ c', мой желаемый вывод из оператора печати:

abc
abd
abf

Ответы [ 2 ]

3 голосов
/ 24 апреля 2020

key действительно не определено, потому что вы никогда не создавали такую ​​переменную.

Вы можете l oop над массивом, а затем l oop возражать ключи каждого объекта, который вы получили:

for obj in data:
    for obj_key in obj:
        print(obj[obj_key]['ID18__c'])
2 голосов
/ 24 апреля 2020

Ваш ключ не определен, потому что, где вы создаете key? Также data[{key}['ID18__c'] не будет работать. Это похоже на неверный синтаксис. Также не нужно использовать enumerate(), так как для этого вам не нужны никакие индексы.

Вам нужно l oop для каждого словаря в списке, затем l oop для значений внутри словаря, который также является словарем. Затем вы можете позвонить на клавишу 'ID18__c'.

for dic in data:
    for v in dic.values():
        print(v['ID18__c'])

Мы также можем просто l oop по клавишам:

for dic in data:
    for k in dic:
        print(dic[k]['ID18__c'])

Вывод:

abc
abd
abf
...