Python中聚合列表内JSON项:按标题描述合并实例信息
数据集聚合解决方案
实现思路
以title和Description的组合作为唯一标识进行分组,将同一组内的instance_id和instance_name分别收集为列表,最终整理成包含instance_info字段的目标结构。
代码实现
# 原始数据集 dataset = [ {'title' : 'XYZ', 'Description' : 'XYZ Description', 'instance_id' : 'instance A', 'instance_name' : 'name A'}, {'title' : 'XYZ', 'Description' : 'XYZ Description', 'instance_id' : 'instance B', 'instance_name' : 'name B'}, {'title' : 'ABC', 'Description' : 'ABC Description', 'instance_id' : 'instance B', 'instance_name' : 'name B'}, {'title' : 'ABC', 'Description' : 'ABC Description', 'instance_id' : 'instance C', 'instance_name' : 'name C'} ] # 初始化分组字典,用于暂存聚合数据 grouped_data = {} for item in dataset: # 用(title, Description)元组作为分组唯一键 group_key = (item['title'], item['Description']) if group_key not in grouped_data: # 首次遇到该分组时,初始化基础结构 grouped_data[group_key] = { 'title': item['title'], 'Description': item['Description'], 'instance_info': { 'instance_id': [], 'instance_name': [] } } # 将当前条目实例信息追加到对应分组列表中 grouped_data[group_key]['instance_info']['instance_id'].append(item['instance_id']) grouped_data[group_key]['instance_info']['instance_name'].append(item['instance_name']) # 将分组字典的值转换为列表,得到最终结果 aggregated_dataset = list(grouped_data.values()) print(aggregated_dataset)
运行结果
[ {'title': 'XYZ', 'Description': 'XYZ Description', 'instance_info': {'instance_id': ['instance A', 'instance B'], 'instance_name': ['name A', 'name B']}}, {'title': 'ABC', 'Description': 'ABC Description', 'instance_info': {'instance_id': ['instance B', 'instance C'], 'instance_name': ['name B', 'name C']}} ]
内容的提问来源于stack exchange,提问作者gözde yıldız
相关产品推荐
相关产品推荐

