You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按条件为Python嵌套字典的子字典添加新键值对并解决报错?

问题原因分析

你遇到的报错和功能不生效问题来自三个代码错误:

  • 报错TypeError: 'dict' object is not callable的直接原因是你写了info_processos(value["dias_vista"] >= 10),圆括号()在Python里是调用可执行对象(比如函数)的语法,字典属于不可调用对象,取值要使用方括号[];而且你的判断逻辑不需要套外层字典,直接判断子字典的dias_vista值即可。
  • 你没有给分支加else,不管if判断是否成立,最后一行prorrogado": "Não"的赋值都会执行,直接覆盖if分支的赋值结果。
  • 你使用update直接给协议号对应的value替换为只包含prorrogado的新字典,会丢失原来子字典里的classe、dias_vista两个字段。
正确实现代码

因为字典是可变对象,直接遍历修改子字典的键值对即可,不需要修改外层字典:

info_processos = {
'2019.491429': {"classe": "apelação", "dias_vista": 11},
'2020.714034': {"classe": "habeas corpus", "dias_vista": 8},
'2015.695102': {"classe": "agravo de instrumento", "dias_vista": 17},
'2012.628045': {"classe": "apelação", "dias_vista": 32},
'2017.462447': {"classe": "recurso em sentido estrito", "dias_vista": 9},
'2018.518281': {"classe": "apelação", "dias_vista": 4},
}

# 遍历所有子字典直接赋值
for sub_dict in info_processos.values():
    sub_dict["prorrogado"] = "sim" if sub_dict["dias_vista"] >= 10 else "não"

运行后打印info_processos就可以看到所有子字典都已经正确添加了prorrogado字段,原有字段不会丢失。

内容的提问来源于stack exchange,提问作者Gabriel Salvador

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:06:03