Python 从dict中访问一项并将其存储到变量中

Python 从dict中访问一项并将其存储到变量中,python,flask,uuid,Python,Flask,Uuid,我试图从API中获取所有的“uuid”,问题是它被存储到dict中(我认为)。以下是API上的外观: {"guild": { "_id": "5eba1c5f8ea8c960a61f38ed", "name": "Creators Club", "name_lower": "creators club", "coins": 0, "coinsEver": 0, "created": 158925526

我试图从API中获取所有的“uuid”,问题是它被存储到dict中(我认为)。以下是API上的外观:

{"guild": {
        "_id": "5eba1c5f8ea8c960a61f38ed",
        "name": "Creators Club",
        "name_lower": "creators club",
        "coins": 0,
        "coinsEver": 0,
        "created": 1589255263630,
        "members":
            [{  "uuid": "db03ceff87ad4909bababc0e2622aaf8",
                "rank": "Guild Master",
                "joined": 1589255263630,
                "expHistory": {
                "2020-06-01": 280,
                "2020-05-31": 4701,
                "2020-05-30": 0,
                "2020-05-29": 518,
                "2020-05-28": 1055,
                "2020-05-27": 136665,
                "2020-05-26": 34806}}]
        }
    }
现在我对“uuid”部分很感兴趣,请注意:有多个播放器,可以是1到100个播放器,我需要每个uuid

现在,我已经在python中完成了这项工作,以便在网站上显示UUID: 尝试:

这给了我所有的“UUID代码”,我将使用
client.getPlayer(UUID=--)
将UUID转换为播放器名称。我必须将每个“UUID”循环到该代码
client.getPlayer(UUID=--)
。但首先我需要将UUID保存在变量中,我一直在做
members.UUID
来访问HTML文件中的UUID,但我不知道如何在python中执行
.UUID
部分


如果您还需要什么,只需注释:)

列表理解是一个强大的概念:

members = [client.getPlayer(member['uuid']) for member in guildMembers]
编辑: 如果要将名称重新插入到数据中(以GuidMembers为单位), 使用{uuid:member_name,}格式的字典理解:

members = {member['uuid']: client.getPlayer(uuid=member['uuid']) for member in guildMembers}
然后您可以使用结果更新guildMembers:

for member in guildMembers:
    guildMembers[member]['name'] = members[member['uuid']]

假设
guild
是一个主字典,其中有一个名为
members
的键和一个“子字典”列表,您可以试试

uuid = list()
for x in guild['members']:
    uuid.append(x['uuid'])

uuid
现在拥有了所有的uuid

如果我理解正确的情况,你只需要遍历所有接收到的uuid并获取玩家的数据。大概是这样的:

f = requests.get("https://api.hypixel.net/guild?key=[secret]&id=" + guild).json()
guildName = f["guild"]["name"]
guildMembers = f["guild"]["members"]
guildMembersData = dict()  # Here we will save member's data from getPlayer method

for guildMember in guildMembers:
    uuid = guildMember["uuid"]
    memberData = client.getPlayer(uuid=uuid)
    guildMembersData[uuid] = client.getPlayer(uuid=guildMember["uuid"])

print(guildMembersData)  # Here will be players' Data.

client.getPlayer
需要取两个参数,第一个是
uuid=
,第二个是uuid。这是他们文档中的
client.getPlayer()
(Hypixthon是模块名,忘了说这个。)
client.getPlayer(uuid=“player uuid”)
它在getPlayer()中取两个参数,
uuid=
然后将uuid发送到该Minecraft帐户。当您在此处共享此操作时,它会请求第二个参数,或者请求
uuid=
,尝试将其添加进来,但没有成功!嗯,奇怪。我第一次没工作。。不过现在可以了,谢谢!只是一个问题,我如何只在变量中存储UUID?那么没有Client.getPlayer()部分?我试图通过执行member[“player”][“displayname”],在执行getPlayer()之后获得显示内容的“displayname”,但没有成功!所以我可能只需要UUID。这样做了,但是没有运气
members=[guildMembers['uuid']对于guildMembers中的成员]
您使用
memberData=client.getPlayer(uuid=uuid)
做什么?它显示
未使用的变量“memberData”
f = requests.get("https://api.hypixel.net/guild?key=[secret]&id=" + guild).json()
guildName = f["guild"]["name"]
guildMembers = f["guild"]["members"]
guildMembersData = dict()  # Here we will save member's data from getPlayer method

for guildMember in guildMembers:
    uuid = guildMember["uuid"]
    memberData = client.getPlayer(uuid=uuid)
    guildMembersData[uuid] = client.getPlayer(uuid=guildMember["uuid"])

print(guildMembersData)  # Here will be players' Data.