Python如何修改列表中嵌套的内层字典的指定字段值?
实现代码
直接遍历列表匹配目标项即可完成修改,代码如下:
# 原始数据 data = [ {'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 item in data: if item.get('a') == 3: item['c']['ca'] = 33 # 确认只有一个匹配项时可加break终止遍历,提升效率 break # 验证输出结果 print(data)
补充说明
- 用
get方法获取外层字典a键的值,可以避免键不存在时抛出异常 - 如果你需要保留原始数据不被改动,可以先做深拷贝再操作:
import copy new_data = copy.deepcopy(data) for item in new_data: if item.get('a') == 3: item['c']['ca'] = 33 break
修改后的结果会存储在new_data变量中,原始data不受影响。
内容的提问来源于stack exchange,提问作者kaavaaa
相关产品推荐
相关产品推荐

