gpt4 book ai didi

python - 合并并创建具有相同 id 的所有记录的新 JSON 数组

转载 作者:行者123 更新时间:2023-11-28 21:35:01 26 4
gpt4 key购买 nike

我必须合并并创建一个 JSON 数组,其中包含字典列表中具有相同 cluster_id 的所有记录。例如: id: 1 & 2 具有相同的 cluster_id 字段,因此它们应按预期输出所示进行合并,并且 3 个字段 id,name,match_full_address 应显示为新字段记录的 JSON 数组,对于 id 3 的单例记录应显示为 JSON 数组.

我的词典列表:

[{
'id': 1,
'name': 'Will Smith',
'match_full_address': 'Ridge Boulevard,123 Main Street,Branchburg,NJ',
'cluster_id': 91,
'lat': 18756.73,
'longi': -97.395351,
},
{
'id': 2,
'name': 'Sandra Bullock',
'match_full_address': 'New Castle,123 Mountain Ave,Branchburg,NJ',
'cluster_id': 91,
'lat': 18756.73,
'longi': -97.395351,
},
{
'id': 3,
'name': 'Tom Cruise',
'match_full_address': 'MI2, 123 Syracuse Avenue, Branchburg,NJ',
'cluster_id': 92,
'lat': 18756.73,
'longi': -97.395351,
}
]

预期输出:

[{
'cluster_id': 91,
'lat': 18756.73,
'longi': -97.395351,
'records': [{'id': 1,
'name': 'Will Smith',
'match_full_address': 'Ridge Boulevard,123 Main Street,Branchburg,NJ'},
{'id': 2,
'name': 'Sandra Bullock',
'match_full_address': 'New Castle,123 Mountain Ave,Branchburg,NJ'}]
},
{
'cluster_id': 92,
'lat': 18756.73,
'longi': -97.395351,
'records': [{ 'id': 3,
'name': 'Tom Cruise',
'match_full_address': 'MI2, 123 Syracuse Avenue, Branchburg,NJ'}
}
]

最佳答案

您可以使用临时字典来跟踪同一 cluster_id 的记录,并不断将感兴趣的键附加到记录中。

假设你的字典列表存储在变量l中:

t = {}
for d in l:
if d['cluster_id'] not in t:
t[d['cluster_id']] = {k: d.get(k, []) for k in ('cluster_id', 'lat', 'longi', 'records')}
t[d['cluster_id']]['records'].append({k: d[k] for k in ('id', 'name', 'match_full_address')})

list(t.values()) 将返回:

[{'cluster_id': 91,
'lat': 18756.73,
'longi': -97.395351,
'records': [{'id': 1,
'match_full_address': 'Ridge Boulevard,123 Main '
'Street,Branchburg,NJ',
'name': 'Will Smith'},
{'id': 2,
'match_full_address': 'New Castle,123 Mountain '
'Ave,Branchburg,NJ',
'name': 'Sandra Bullock'}]},
{'cluster_id': 92,
'lat': 18756.73,
'longi': -97.395351,
'records': [{'id': 3,
'match_full_address': 'MI2, 123 Syracuse Avenue, Branchburg,NJ',
'name': 'Tom Cruise'}]}]

关于python - 合并并创建具有相同 id 的所有记录的新 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52778134/

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