You need to enable JavaScript to run this app. 如何将给定Python DataFrame转换为指定结构嵌套JSON并保存到磁盘
优惠活动
大模型
产品
解决方案
定价
更多

如何将给定Python DataFrame转换为指定结构嵌套JSON并保存到磁盘

Pandas DataFrame 自定义结构JSON导出实现

原始输入数据

待处理的DataFrame包含员工号、姓名、项目、任务4个字段,其中存在项目、任务字段全为空的无效记录,原始数据结构如下:

Emp_NoNameProjectTask
1ABCP1T1
1ABCP2T2
2DEFP3T3
3IJHNullNull

转换规则

转换流程严格对齐目标JSON格式要求:

  • 生成的JSON顶层设置Records数组,数组内每个元素对应单名员工的完整信息
  • 员工节点固定包含Emp_No、Name字段,同一名员工的多条关联项目记录不重复生成独立员工节点
  • 为每个员工节点添加Project_Details数组字段:将该员工下所有非空的Project、Task配对为独立对象存入数组;如果员工无有效项目记录,该字段输出为空数组
  • 员工编号统一转为字符串格式存储,匹配目标示例的格式规范

可直接运行的实现代码

import pandas as pd
import numpy as np
import json

# 构造/读取原始DataFrame,实际使用时替换为自身的数据源读取逻辑即可
raw_df = pd.DataFrame({
    "Emp_No": [1, 1, 2, 3],
    "Name": ["ABC", "ABC", "DEF", "IJH"],
    "Project": ["P1", "P2", "P3", np.nan],
    "Task": ["T1", "T2", "T3", np.nan]
})

# 按员工维度分组聚合
output_records = []
for emp_id, emp_group in raw_df.groupby("Emp_No", sort=False):
    # 过滤项目、任务为空的无效记录
    valid_project_rows = emp_group.dropna(sub=["Project", "Task"])
    # 组装项目明细列表
    project_details = [
        {"Project": row.Project, "Task": row.Task}
        for _, row in valid_project_rows.iterrows()
    ]
    # 生成单条员工记录
    output_records.append({
        "Emp_No": str(emp_id),
        "Name": emp_group["Name"].iloc[0],
        "Project_Details": project_details
    })

# 组装最终JSON结构并保存到本地磁盘
final_payload = {"Records": output_records}
# 替换为实际需要保存的本地文件路径
save_path = "emp_project_export.json"
with open(save_path, "w", encoding="utf-8") as f:
    json.dump(final_payload, f, ensure_ascii=False, indent=2)

输出结果校验

代码运行后生成的JSON结构完全符合要求,示例输出如下:

{
  "Records": [
    {
      "Emp_No": "1",
      "Project_Details": [
        {"Project": "P1", "Task": "T1"},
        {"Project": "P2", "Task": "T2"}
      ],
      "Name": "ABC"
    },
    {
      "Emp_No": "2",
      "Project_Details": [
        {"Project": "P3", "Task": "T3"}
      ],
      "Name": "DEF"
    },
    {
      "Emp_No": "3",
      "Project_Details": [],
      "Name": "IJH"
    }
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 00:54:04