Python-如何只提取字典中的列表名称



所以我有一个json文件,里面有嵌套的dict和dict嵌套列表。如何显示所有dict名称?我没有使用python的经验,所以我不知道。这就是我迄今为止所做的:

import json

def show_all_teams():

teamsData = open("scores_db.json")
all_data = teamsData.read()
listAll = json.loads(all_data)
for teams in listAll['football']:
print(teams)

if __name__ == "__main__":
show_all_teams()

但这让我看到了足球的一切。我只想展示三支球队(绿湾包装工队、堪萨斯城酋长队、坦帕湾海盗队(

我的json文件看起来像这样:

{
"football": [
{
"Green Bay Packers": [
{
"week": "19-2020",
"boxscore": "202101160gnb",
"away_name": "Los Angeles Rams",
"away_abbr": "ram",
"away_score": 18,
"home_name": "Green Bay Packers",
"home_abbr": "gnb",
"home_score": 32,
"winning_name": "Green Bay Packers",
"winning_abbr": "gnb",
"losing_name": "Los Angeles Rams",
"losing_abbr": "ram"
},
{
"week": "20-2020",
"boxscore": "202101240gnb",
"away_name": "Tampa Bay Buccaneers",
"away_abbr": "tam",
"away_score": 31,
"home_name": "Green Bay Packers",
"home_abbr": "gnb",
"home_score": 26,
"winning_name": "Tampa Bay Buccaneers",
"winning_abbr": "tam",
"losing_name": "Green Bay Packers",
"losing_abbr": "gnb"
}
]
},
{
"Kansas City Chiefs": [
{
"week": "17-2020",
"boxscore": "202101030kan",
"away_name": "Los Angeles Chargers",
"away_abbr": "sdg",
"away_score": 38,
"home_name": "Kansas City Chiefs",
"home_abbr": "kan",
"home_score": 21,
"winning_name": "Los Angeles Chargers",
"winning_abbr": "sdg",
"losing_name": "Kansas City Chiefs",
"losing_abbr": "kan"
},
{
"week": "19-2020",
"boxscore": "202101170kan",
"away_name": "Cleveland Browns",
"away_abbr": "cle",
"away_score": 17,
"home_name": "Kansas City Chiefs",
"home_abbr": "kan",
"home_score": 22,
"winning_name": "Kansas City Chiefs",
"winning_abbr": "kan",
"losing_name": "Cleveland Browns",
"losing_abbr": "cle"
},
{
"week": "19-2020",
"boxscore": "202101240kan",
"away_name": "Buffalo Bills",
"away_abbr": "buf",
"away_score": 24,
"home_name": "Kansas City Chiefs",
"home_abbr": "kan",
"home_score": 38,
"winning_name": "Kansas City Chiefs",
"winning_abbr": "kan",
"losing_name": "Buffalo Bills",
"losing_abbr": "buf"
}
]
},
{
"Tampa Bay Buccaneers": [
{
"week": "17-2020",
"boxscore": "202101030tam",
"away_name": "Atlanta Falcons",
"away_abbr": "atl",
"away_score": 27,
"home_name": "Tampa Bay Buccaneers",
"home_abbr": "tam",
"home_score": 44,
"winning_name": "Tampa Bay Buccaneers",
"winning_abbr": "tam",
"losing_name": "Atlanta Falcons",
"losing_abbr": "atl"
}
]
}
]
}

您可以获得字典键。

import json

def show_all_teams():

teamsData = open("scores_db.json")
all_data = teamsData.read()
listAll = json.loads(all_data)
for teams in listAll['football']:
print(list(teams.keys()))

if __name__ == "__main__":
show_all_teams()

输出

['Green Bay Packers']
['Kansas City Chiefs']
['Tampa Bay Buccaneers']

更改行

这一行是字典的关键字。

print(teams.keys())

输出

dict_keys(['Green Bay Packers'])
dict_keys(['Kansas City Chiefs'])
dict_keys(['Tampa Bay Buccaneers'])

我使用list(teams.keys())只是为了让它更容易访问,因为您可以对它进行迭代并将其打印为字符串。

您想要使用以下内容:print(list(teams.keys()))

import json

def show_all_teams():

teamsData = open("scores_db.json")
all_data = teamsData.read()
listAll = json.loads(all_data)
for teams in listAll['football'].keys():
print(teams)

if __name__ == "__main__":
show_all_teams()

这是获得所需输出的正确方法。我所做的是在for循环中使用了dictionary的keys((函数

for teams in listAll['football'].keys()

这有助于你获得字典的所有关键字。希望我的回答对你有帮助。

最新更新