You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何对嵌套JSON字典按sender字段分组得到目标结构

实现方案

你可以直接通过嵌套遍历原始字典完成分组,该方法时间复杂度为O(n)(n为所有子项总数),效率远高于需要预排序的itertools.groupby方案:

示例代码

import json

# 假设你已经把原始JSON解析为Python字典,变量名为original_data
# 如果是JSON字符串,先执行 original_data = json.loads(你的JSON字符串)
result = {}

for top_key, sub_items in original_data.items():
    result[top_key] = {}
    for item_id, item_info in sub_items.items():
        sender_val = item_info["sender"]
        # 对应sender不存在则初始化
        if sender_val not in result[top_key]:
            result[top_key][sender_val] = {}
        result[top_key][sender_val][item_id] = item_info

# 如果需要转回JSON字符串
output_json = json.dumps(result, indent=2, ensure_ascii=False)
print(output_json)

注意事项

  • 你提供的原始JSON存在大量尾部逗号(每个对象最后一个键值对后多余的逗号),不符合标准JSON规范,直接用json.loads解析会报错,你可以先清理这些尾部逗号,或者使用demjson等兼容非标准JSON的库完成解析。
  • 该方案不需要引入额外依赖,遍历一次即可得到目标结构,适合处理任意量级的同结构数据。

内容的提问来源于stack exchange,提问作者Ayush Saini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:24:05