gpt4 book ai didi

Python:如何为一个键分配多个值

转载 作者:行者123 更新时间:2023-12-02 16:16:42 24 4
gpt4 key购买 nike

我使用 API 提取数据并检索服务器和备份的列表。有些服务器有多个备份。这就是我获取所有具有备份 ID 的服务器列表的方法。

bkplist = requests.get('https://heee.com/1.2/storage/backup')
bkplist_json = bkplist.json()
backup_list = bkplist.json()
backupl = backup_list['storages']['storage']

Json 看起来像这样:

{
"storages": {
"storage": [
{
"access": "",
"created": "",
"license": ,
"origin": "01165",
"size": ,
"state": "",
"title": "",
"type": "backup",
"uuid": "01019",
"zone": ""
},

首先,我创建一个字典来存储这些数据:

backup = {}
for u in backup_list['storages']['storage']:
srvuuidorg = u['origin']
backup_uuid = u['uuid']
backup[srvuuidorg] = backup_uuid

但后来我发现每台服务器都有多个值。由于字典只能将一个值分配给一个键,因此我想使用列表和字典的某种混合,但我只是不知道如何在这个示例中执行此操作。

服务器嵌套在存储->存储中,我需要将几个uuid(即备份ID)分配给一个 origin 是服务器 ID。

我了解 collections 模块,并且通过一个简单的示例就可以很好地理解,但是我有一个问题,如何在我的示例中使用它并通过 API 提取数据。

如何提取origin并将存储在json uuid中的其他值分配给此键?

此外,数据量很大,因此我无法手动添加每个值。

最佳答案

你可以做这样的事情。

from collections import defaultdict

backup = defaultdict(list)
for u in backup_list['storages']['storage']:
srvuuidorg = u['origin']
backup_uuid = u['uuid']
backup[srvuuidorg].append(backup_uuid)

请注意,您可以像这样简化循环。

from collections import defaultdict

backup = defaultdict(list)
for u in backup_list['storages']['storage']:
backup[u['origin']].append(u['uuid'])

但这可能被认为可读性较差。

关于Python:如何为一个键分配多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58710263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com