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

Python中触发KeyError异常后如何继续执行try块内后续赋值语句

解决方案

核心思路是将每个可能触发KeyError的赋值逻辑拆分到独立的异常捕获块中,避免单个赋值失败阻断后续代码执行,提供两种实现方式:

方式1:单个赋值独立捕获(适合键数量少的场景)

直接给每个赋值操作单独套try-except,互不影响,和原有代码兼容性最高:

try:
    key1 = val1
except KeyError:
    pass

try:
    key2 = val2
except KeyError:
    pass

try:
    key3 = val3
except KeyError:
    pass

# 所有赋值逻辑执行完后统一调用,和原有finally逻辑效果一致
createTask()

方式2:循环批量处理(适合键数量多的场景)

如果需要赋值的键较多,避免重复写冗余的捕获代码,可以把键值映射关系放在列表里循环处理:

# 示例场景:val1/val2/val3从同一个源字典source_dict中取值
source_dict = {"id": 1, "name": "test"}
# 配置格式:(源字典的键名, 要赋值的变量名)
assign_config = [
    ("id", "key1"),
    ("age", "key2"),
    ("name", "key3")
]

var_container = {}
for src_key, var_name in assign_config:
    try:
        var_container[var_name] = source_dict[src_key]
    except KeyError:
        # 可根据需求设置默认值,比如 var_container[var_name] = None
        pass

# 按需取出变量
key1 = var_container.get("key1")
key2 = var_container.get("key2")
key3 = var_container.get("key3")

createTask()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 02:15:00