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

JSON解析时触发KeyError:无法访问gold_spent键的问题求助

问题原因

你遇到的KeyError: 'gold_spent'错误是因为请求的API返回的JSON数据为多层嵌套结构,gold_spent并不在数据的最顶层,直接访问顶层字典的gold_spent键自然会抛出不存在的错误。

排查方法

你可以先打印返回数据的顶层键,确认基础结构:

import json
import requests

response = requests.get("https://sky.shiiyu.moe/api/v2/profile/tProfile")
json_data = json.loads(response.text)
# 打印顶层所有键
print(json_data.keys())

运行后你会发现顶层返回的键大多是profiles这类嵌套对象,你需要逐层往下找到存储gold_spent的层级。

正确取值示例

根据该API的常规返回结构,你需要先进入对应玩家的profile数据,再找到统计字段下的金币消费记录,通用取值逻辑如下:

import json
import requests

response = requests.get("https://sky.shiiyu.moe/api/v2/profile/tProfile")
json_data = json.loads(response.text)

# 先遍历profiles下的所有存档
for profile_id, profile_data in json_data.get("profiles", {}).items():
    # 进入stats字段找gold_spent
    stats = profile_data.get("data", {}).get("stats", {})
    gold_spent = stats.get("gold_spent")
    if gold_spent is not None:
        print(f"存档{profile_id}的金币消费额:{gold_spent}")

注意事项

  • 不确定键是否存在时,优先用字典的get()方法取值,避免直接用[]抛出KeyError,get()在键不存在时会默认返回None,你也可以自定义默认值比如stats.get("gold_spent", 0)
  • 取值前可以先把返回的JSON格式化打印出来查看完整结构,更方便定位字段位置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:39:05