[英]How to print specific json data for multiple instances?
import requests
url = "https://api.gametools.network/bf1/players/?gameId=7218126050214"
r = requests.get(url)
data = r.json()
print(data['teams'][1]['players'][0]['name'])
print(data['teams'][1]['players'][1]['name'])
print(data['teams'][1]['players'][2]['name'])
print(data['teams'][1]['players'][3]['name'])
print(data['teams'][1]['players'][4]['name'])
print(data['teams'][1]['players'][5]['name'])
print(data['teams'][1]['players'][6]['name'])
print(data['teams'][1]['players'][7]['name'])
print(data['teams'][1]['players'][8]['name'])
print(data['teams'][1]['players'][9]['name'])
print(data['teams'][1]['players'][10]['name'])
print(data['teams'][1]['players'][11]['name'])
print(data['teams'][1]['players'][12]['name'])
print(data['teams'][1]['players'][13]['name'])
print(data['teams'][1]['players'][14]['name'])
print(data['teams'][1]['players'][15]['name'])
print(data['teams'][1]['players'][16]['name'])
print(data['teams'][1]['players'][17]['name'])
print(data['teams'][1]['players'][18]['name'])
print(data['teams'][1]['players'][19]['name'])
print(data['teams'][1]['players'][20]['name'])
这是我的代码片段,我认为可以真正改进以节省一些空间,问题是我似乎无法找到一种方法来枚举所有玩家的名字,除了像上面显示的那样一个一个地做,我的目标是有一个列表,将显示给定服务器的两个团队的每个用户名。
我应该提到代码当前正在运行,但我觉得有一种更简单的方法来获取我需要的数据,我确实搜索了这些方法,但因为我的数据嵌套在列表/字典中,我感到困惑。
欢迎任何建议,谢谢:)
以下是迭代列表的方法:
l = [1, 2, 3, 4]
for element in l:
print(l)
一旦您知道这一点,只需将嵌套迭代问题分解为上述最简单的形式即可。 因此,您只需要获取需要迭代的列表,然后使用您已经知道的上述示例:
l = data['teams'][1]['players']
for element in l:
print(element['name'])
让我们编写一个简单的函数,它接受来自团队的数据并使用 for 循环来迭代玩家。
def printTeamNames(team):
print(team["teamid"])
for player in team["players"]: print(player["name"])
然后我们可以向该函数传递每个团队的数据。
printTeamNames(data["teams"][0])
printTeamNames(data["teams"][1])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.