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

Discord Bot解析JSON遇KeyError:如何获取嵌套JSON字段值?

解决Discord Bot中JSON嵌套字段提取的KeyError问题

问题根源

你触发KeyError是因为直接去取message字段,但它根本不在JSON的最外层——它藏在type下面的overall子对象里,跳层级访问肯定找不到。

正确提取方式

用json.loads()解析完JSON字符串后,得一层一层往下找对应的键:

示例代码

import json

# 假设这是你收到的JSON字符串(注意去掉原JSON里末尾多余的逗号,不然解析会报错)
json_str = '{"type":{"overall":{"message":1111111111}}}'

# 把字符串转成Python字典
data = json.loads(json_str)

# 逐层获取message的值
message_num = data["type"]["overall"]["message"]
print(message_num)  # 会输出1111111111

防报错小技巧

要是怕某个层级的键可能不存在(比如接口返回格式变了),可以用dict.get()方法,这样不会触发KeyError,还能设置默认值:

# 要是type或overall不存在,就返回0(默认值可以自己修改)
message_num = data.get("type", {}).get("overall", {}).get("message", 0)

注意点

  • 别跳过中间层级直接写data["message"],最外层根本没这个键,肯定报错。
  • 原JSON里message:1111111111,后面多了个逗号,实际使用时要删掉,不然json.loads()会直接抛出JSONDecodeError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:52:08