如何将此字典中的所有ID值放入列表中?

时间:2017-06-28 03:14:23

标签: python

基本上,我想从此JSON数据中返回所有“ID”值并将它们放入列表中:

https://www.roblox.com/games/getgameinstancesjson?placeId=70501379&startindex=0

这是我到目前为止的代码。它返回上面的所有JSON数据并将其放入字典中。问题是,我完全迷失在如何进入字典并获取ID值。 “这是一个怪物。请帮忙。

import urllib, json

url = "https://www.roblox.com/games/getgameinstancesjson?
placeId=70501379&startindex=0"

response = urllib.urlopen(url)

data = json.loads(response.read())

3 个答案:

答案 0 :(得分:1)

所以基本上,你正在尝试累积所有当前玩家的ID。

ids = []
for entry in data['Collection']:
    ids.extend(player['Id'] for player in entry['CurrentPlayers'])

答案 1 :(得分:0)

您需要遍历JSON数据结构以收集所有ID。

 import urllib, json

url = "https://www.roblox.com/games/getgameinstancesjson?placeId=70501379&startindex=0"

response = urllib.urlopen(url)

data = json.loads(response.read())
ids = []
for i in data["Collection"][0]["CurrentPlayers"]:
    ids.append(i["Id"])
print ids

答案 2 :(得分:0)

这些现有玩家共有7个藏品共享,以下是@ wiludsdaman答案的明确版本

ids = []
for collection in data["Collection"]:
    for player in collection["CurrentPlayers"]:
        ids.append(player["Id"])

print ids

如果你更勇敢,你可以使用双列表理解来缩小上面的代码

ids = [player["Id"] for collection in data["Collection"] for player in collection["CurrentPlayers"]]