在访问JSON、python中的元素时获取Keyerror

在访问JSON、python中的元素时获取Keyerror,python,json,Python,Json,我已经多次看到这个问题,但我认为我希望访问的JSON有点不同。我看到的JSON格式如下: { "timestamp": 1589135576, "level": 20, "gender": "Male", "status": {}, "personalstats": {}, "attacks": { "103307874": { "code": "cc7bc5ab6fbd54f49a2e879c49e70183", "result": "M

我已经多次看到这个问题,但我认为我希望访问的JSON有点不同。我看到的JSON格式如下:

{
  "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中删除了它?我在数据库中存储了所有攻击并找到了最新的攻击,但我认为它的可扩展性和干净性都不太好