在访问JSON、python中的元素时获取Keyerror
我已经多次看到这个问题,但我认为我希望访问的JSON有点不同。我看到的JSON格式如下:在访问JSON、python中的元素时获取Keyerror,python,json,Python,Json,我已经多次看到这个问题,但我认为我希望访问的JSON有点不同。我看到的JSON格式如下: { "timestamp": 1589135576, "level": 20, "gender": "Male", "status": {}, "personalstats": {}, "attacks": { "103307874": { "code": "cc7bc5ab6fbd54f49a2e879c49e70183", "result": "M
{
"timestamp": 1589135576,
"level": 20,
"gender": "Male",
"status": {},
"personalstats": {},
"attacks": {
"103307874": {
"code": "cc7bc5ab6fbd54f49a2e879c49e70183",
"result": "Mugged",
"chain": 2,
"modifiers": {
"fairFight": 3,
"war": 1,
}
},
"103320473": {
"code": "3184c1e2c9662fd70a21f03a637cb02e",
"result": "Mugged",
"chain": 1,
"modifiers": {
"fairFight": 1.07,
"war": 1,
}
},
}
}
在前两个下面还有98个攻击
现在我想我可以用这段代码访问第一个攻击结果,但它导致了一个关键错误。有人知道为什么吗
currentresponse = requests.get("URL")
json_obj = json.loads(currentresponse.text)
lastresult = json_obj["attacks"][0]["result"]
作为奖励,我可以通过以下代码访问攻击结果
json_obj["attacks"]["103320473"]["result"]
是的,您不能使用json_obj[attacks][0]进行访问,因为它不是一个列表,因此没有像列表那样的索引。这些是嵌套的dict,因此您必须通过dict规则通过键访问它们,因为攻击不是列表。谢谢!据我所知,指令本身是无序的,这在一定程度上被攻击的时间戳所证实。有没有什么方法可以对json中时间戳最高的攻击进行排序和访问,但为了可读性,我直接从OP中删除了它?我在数据库中存储了所有攻击并找到了最新的攻击,但我认为它的可扩展性和干净性都不太好