'data'
🚨 错误信息
{'message': '无权进行此操作,access token 无效', 'success': False}
Traceback (most recent call last):
File "D:\a\m.py", line 21, in <module>
quota = data["data"]["quota"] # 获取账户额度
~~~~^^^^^^^^
KeyError: 'data'
🤖 AI解决方案
代码糕手 - 报错分析报告
1. 错误翻译
原文:KeyError: 'data'
译文:键错误:字典中不存在键名 'data'
2. 原因分析
这个错误有两个层面的问题:
第一层面:API 调用失败 ⚠️
- API 返回了错误响应:
'无权进行此操作,access token 无效' - 导致响应数据结构异常,
success字段为False - 在第 21 行尝试访问
data["data"]["quota"] - 但由于 API 调用失败,
data字典中实际没有"data"这个键 - Python 尝试访问不存在的字典键时抛出
KeyError - 文件:
D:\a\m.py - 行号:第 21 行
- 代码:
quota = data["data"]["quota"]
第二层面:代码逻辑缺陷
错误发生位置
3. 解决方案
修复后的代码
# 检查 API 调用是否成功
if data.get("success"):
# 安全地获取 quota 数据,避免 KeyError
quota = data.get("data", {}).get("quota")
if quota is not None:
# 正常处理逻辑
print(f"账户额度:{quota}")
else:
print("API 返回数据中缺少 quota 信息")
else:
# 处理 API 调用失败的情况
error_message = data.get("message", "未知错误")
print(f"API 调用失败:{error_message}")
# 具体处理 access token 无效的问题
if "access token 无效" in error_message:
print("⚠️ 请检查或刷新 access token")
# 这里可以添加 token 刷新或重试逻辑
️ 4. 预防措施
最佳实践建议
.get() 方法替代直接键访问
- 为字典访问提供默认值,如 .get("key", {}) 或 .get("key", "")
- 网络/HTTP 层错误:检查状态码和连接异常
- 业务逻辑层错误:检查
success 字段和错误信息- 数据处理层错误:安全访问数据结构
工具推荐 ️
typing) 帮助 IDE 检测潜在问题