调用Hypixel API时存在profile JSON却触发KeyError(last_save)的解决方法
解决Hypixel Skyblock API获取
last_save时的KeyError问题 嘿,这个问题我之前也碰到过!你之所以会触发KeyError,是因为last_save字段不在返回JSON的顶层字典里,而是嵌套在profile这个子字典当中。你代码里已经能打印data['profile'],说明你知道这个字段存在,但取last_save的时候找错了层级。
修正后的代码
我帮你调整了代码,同时加了安全判断避免后续再出现类似问题:
import requests import json api_key = 'API KEY HERE' uuid = 'UUID HERE' profileID = 'PROFILE ID HERE' player = 'PLAYER NAME HERE' # 发送API请求 url = f'https://api.hypixel.net/skyblock/profile?key={api_key}&profile={profileID}' response = requests.get(url) # 解析JSON响应 data = response.json() # 先检查字段是否存在,再安全取值 if data.get('profile') and 'last_save' in data['profile']: last_save = data['profile']['last_save'] print(f"Last save timestamp: {last_save}") else: print("无法找到last_save字段,请检查profile是否有效") # 格式化打印profile数据(方便查看字段结构) print(json.dumps(data['profile'], indent=2))
额外小技巧
如果你不确定字段的嵌套层级,可以用json.dumps(data, indent=2)把整个响应格式化打印出来,这样就能清晰看到所有字段的位置,下次找字段就不会踩坑啦!
内容的提问来源于stack exchange,提问作者null
相关产品推荐
相关产品推荐

