gpt4 book ai didi

python - 将多个键/值关联到 defaultdict(list)

转载 作者:行者123 更新时间:2023-11-28 22:11:46 27 4
gpt4 key购买 nike

我有一个包含记录列表的 json_data 对象。我需要列表中的所有“id”,并且我想以某种方式将“room”和“name”键的值与 id 列表相关联。我需要列表中所有 ID 的原因是因为我正在使用一个 API,该 API 将 ID 作为列表进行批量处理。我还需要将“名称”和“房间”键的值关联到 id 列表。我可以使用 defaultdict(list) 将“房间”关联到列表,但不确定如何关联“名称”键的值。我应该怎么做?

json_data = {
"records": [
{
"id": 123,
"name": "John",
"room": "32B"
},
{
"id": 456,
"name": "Mary",
"room": "32B"
},
{
"id": 789,
"name": "Gary",
"room": "16F"
}]
}

data_list = json_data['records']
my_default_dict = defaultdict(list)
for data in data_list:
my_default_dict[data['room']].append(data['id'])
# This gives {'32B': [123, 456], '16F': [789]}

最佳答案

为什么不将您的数据转换成 ID 映射?然后,您可以从 map 中提取 ID 列表作为键。

records = json_data['records']
# Warning! This destructively iterates over json_data.
json_map = dict(zip((d.pop('id') for d in records), records))

json_map
# {123: {'name': 'John', 'room': '32B'},
# 456: {'name': 'Mary', 'room': '32B'},
# 789: {'name': 'Gary', 'room': '16F'}}

id_list = list(json_map)
# [123, 456, 789]

关于python - 将多个键/值关联到 defaultdict(list),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55446556/

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