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

将Pandas DataFrame转换为含嵌套数组的JSON格式遇阻求助

解决DataFrame转嵌套JSON格式问题

你的核心问题是没能把DataFrame按type层级分组,且details列生成的是无键名的列表而非带id/value的字典结构。下面是针对性的修正方案:

完整修正代码

import pandas as pd
import json

# 读取Excel,注意:如果type列是第一列,保留index_col=[0];否则去掉该参数
df = pd.read_excel("/Colours.xlsx", sheet_name='Colour', index_col=[0])

# 把id和value包装成带键名的字典,value转成字符串匹配目标格式
df['details'] = df.apply(lambda x: {'id': x['id'], 'value': str(x['value'])}, axis=1)

# 按type、colour、code分组,聚合details为列表
df_grouped = df.groupby(["type", "colour", "code"])['details'].agg(list).reset_index()

# 构建每个颜色对应的完整对象
df_grouped['colour_item'] = df_grouped.apply(
    lambda x: {
        'colour': x['colour'],
        'code': x['code'],
        'details': x['details']
    }, axis=1
)

# 按type分组,把同类型的颜色对象聚合为列表
type_groups = df_grouped.groupby('type')['colour_item'].agg(list).to_dict()

# 包装成目标JSON结构
final_result = {'types': [type_groups]}

# 输出格式化后的JSON
print(json.dumps(final_result, indent=2))

关键修正点

  1. 重构details列:把原来的[id, value]列表改成{'id': id, 'value': value}字典,保留键名匹配目标格式;
  2. 双层分组逻辑:先按type+colour+code聚合details,再按type把同类型的颜色对象整合为数组;
  3. 格式对齐:用json.dumps的indent参数生成格式化的JSON,和你期望的结构完全一致。

运行后会生成你需要的嵌套JSON结构:

{
  "types": [
    {
      "A": [
        {
          "colour": "RED",
          "code": "R",
          "details": [
            {
              "id": "11a",
              "value": "166.23"
            },
            {
              "id": "12b",
              "value": "999.99"
            }
          ]
        },
        {
          "colour": "BLUE",
          "code": "B",
          "details": [
            {
              "id": "44a",
              "value": "12.33"
            }
          ]
        }
      ],
      "B": [
        {
          "colour": "RED",
          "code": "R",
          "details": [
            {
              "id": "66y",
              "value": "12345.00"
            }
          ]
        }
      ]
    }
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 14:52:21