循环遍历嵌套字典

我正在尝试从https://fantasy.premierleague.com/drf/event/19/live 上的 JSON 文件中获取数据。但是,每当我遍历接收到的数据时,我都会遇到问题。


下面代码中的第一个循环应该在 中附加值data["elements"]["1"]["stats"]["goals_scored"],但是每当我运行下面的代码时,我都会收到错误字符串索引必须是整数。每当我data["elements"]["number"]["stats"]["goals_scored"]直接引用时,它都会返回正确的数字。


import json

import requests


def goalCalculator():

    data=requests.get("https://fantasy.premierleague.com/drf/event/19/live").json()

    list1=[]

    for i in data["elements"]:

        list1.append(i["stats"]["goals_scored"])

    return list1


goalCalculator()

我已经映射了 JSON 文件(如下),但我看不出哪里出错了。我的代码不应该工作正常吗?


"elements":{

    "1":{

        "stats":{

            "yellow_cards":0,

            "own_goals":0,

            "creativity":0.0,

            "goals_conceded":0,

            "bonus":0,

            "red_cards":0,

            "saves":0,

            "influence":0.0,

            "bps":0,

            "clean_sheets":0,

            "assists":0,

            "ict_index":0.0,

            "goals_scored":0,

            "threat":0.0,

            "penalties_missed":0,

            "total_points":0,

            "penalties_saved":0,

            "in_dreamteam":false,

            "minutes":0

        }

    },

    "2":{etc...


繁星点点滴滴
浏览 207回答 2
2回答

梦里花落0921

代替for i in data["elements"]:    list1.append(i["stats"]["goals_scored"])用for i in data["elements"]:    list1.append(data["elements"][i]["stats"]["goals_scored"])在i循环中是关键data["elements"]的字典,而不是因为你是假设完整的元素。在您的示例中它只是“1”,因此您无法对其进行索引。您将需要获得完整的元素data["elements"][i]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python