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[]用
dataclass或pydantic模型替代裸字典,在编译期捕获字段名错误