Skip to content

KeyError:键不存在

错误信息

                'x'
              

快速摘要

你用 `dict[key]` 取值,但 `key` 在字典里根本不存在,Python 就抛 KeyError。

为什么发生

  • 键拼写错误,与字典里的键不一致

  • 字典里没有该键,但代码假设它一定存在

  • 数据来源(API、JSON)结构变了,某个字段没了

最小示例

✗ 错误代码
user = {"name": "Alice"}
print(user["age"])
✓ 修复代码
user = {"name": "Alice"}
print(user.get("age", "未知"))

user 里没有 age 键,直接 user["age"] 报 KeyError。用 user.get("age", "未知") 在键不存在时返回默认值。

如何诊断

  • 阅读错误信息中单引号里的键名

  • 在出错前用 print(dict.keys()) 查看字典实际有哪些键

  • 确认键名拼写和数据来源是否一致

如何修复

  • dict.get(key) 访问,键不存在时返回 None 而非报错

  • dict.get(key, default) 提供默认值

  • 访问前用 if key in dict 判断

如何预防

  • 对不确定的键统一用 dict.get() 而非 dict[]

  • dataclasspydantic 模型替代裸字典,在编译期捕获字段名错误

相关资源

相关术语

相关课程

相关练习

← 返回语言