Как изменить внутренний словарь в python
у меня есть такие данные :
[{'a':1 , 'b': 1 , 'c':{'ca' : 11 , 'cb':21}},
{'a':2 , 'b': 2 , 'c':{'ca' : 12 , 'cb':22}},
{'a':3 , 'b': 3 , 'c':{'ca' : 13 , 'cb':23}},
{'a':4 , 'b': 4 , 'c':{'ca' : 14 , 'cb':24}},
]
Я хотел спросить, как изменить словарь внутри диктонарных данных в python, например, я хочу изменить 'ca', где a='3' на 33, поэтому я хочу изменить данные следующим образом :
[{'a':1 , 'b': 1 , 'c':{'ca' : 11 , 'cb':21}},
{'a':2 , 'b': 2 , 'c':{'ca' : 12 , 'cb':22}},
{'a':3 , 'b': 3 , 'c':{'ca' : 33 , 'cb':23}},
{'a':4 , 'b': 4 , 'c':{'ca' : 14 , 'cb':24}},
]
Попробуйте это:
lst_dct = [
{'a':1 , 'b': 1 , 'c':{'ca' : 11 , 'cb':21}},
{'a':2 , 'b': 2 , 'c':{'ca' : 12 , 'cb':22}},
{'a':3 , 'b': 3 , 'c':{'ca' : 13 , 'cb':23}},
{'a':4 , 'b': 4 , 'c':{'ca' : 14 , 'cb':24}},
]
for dct in lst_dct :
if dct['a'] == 3:
dct['c']['ca'] = 33
print(lst_dct)
Выход:
[{'a': 1, 'b': 1, 'c': {'ca': 11, 'cb': 21}},
{'a': 2, 'b': 2, 'c': {'ca': 12, 'cb': 22}},
{'a': 3, 'b': 3, 'c': {'ca': 33, 'cb': 23}},
{'a': 4, 'b': 4, 'c': {'ca': 14, 'cb': 24}}]