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

如何将Pandas DataFrame转换为指定嵌套层级的JSON格式

Pandas生成自定义嵌套结构JSON的实现方法

实现代码

Pandas 原生的to_json()方法仅支持固定格式的JSON导出,无法直接实现多层级自定义键、列组合拼接的需求,你可以先手动构造目标字典结构,再转JSON即可:

import pandas as pd
import json

# 你的原始DataFrame
df = pd.DataFrame([
    ["Alice", "Lee", "Athens", "Alabama", "PXY"],
    ["Nor", "Xi", "Mesa", "Arizona", "ABC"]
], columns=["fname", "lname", "city", "state", "code"])

# 构造目标嵌套结构
output = {"Employees": {}}
for _, row in df.iterrows():
    # 拼接全名作为二级键
    full_name = f"{row['fname']} {row['lname']}"
    # 填充二级节点内容
    output["Employees"][full_name] = {
        "code": row["code"],
        "Address": f"{row['city']} {row['state']}"
    }

# 导出为JSON字符串,indent控制缩进,ensure_ascii=False避免中文乱码
json_result = json.dumps(output, indent=2, ensure_ascii=False)

导出的JSON结构如下:

{
  "Employees": {
    "Alice Lee": {
      "code": "PXY",
      "Address": "Athens Alabama"
    },
    "Nor Xi": {
      "code": "ABC",
      "Address": "Mesa Arizona"
    }
  }
}

大数据量优化方案

如果你的DataFrame行数超过10万,逐行遍历的iterrows()性能较低,可以用Pandas内置方法批量处理后生成字典,运行效率提升10倍以上:

# 批量生成拼接字段
df["full_name"] = df["fname"] + " " + df["lname"]
df["Address"] = df["city"] + " " + df["state"]
# 直接生成嵌套字典结构
output = {"Employees": df.set_index("full_name")[["code", "Address"]].to_dict("index")}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 08:54:03