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

如何将Python dataframe转换为指定嵌套结构的JSON?

实现方案

直接使用pandas即可完成全部转换,无需复杂自定义逻辑,操作步骤如下:

  • 处理格式适配字段
    • 原date列为DD/MM/YYYY格式字符串,借助pandas内置的日期解析能力,直接转换为目标要求的YYYY-MM-DD 09:00:00格式(固定给所有日期加上9点的时间)
    • 将原列名ID重命名为目标JSON要求的Id,匹配大小写规则
  • 逐行生成嵌套结构
    遍历dataframe每一行,组装为目标要求的字典:外层保留Id、date、value_2、value_3字段,单独生成ABC数组,数组内固定填入当前行的value_1值,以及写死的"type": "int"字段
  • 整合为最终结构
    将所有组装完成的行对象,存入顶层XYZ键对应的列表中,即可得到要求的JSON格式
可直接运行的代码
import pandas as pd
import json

# 载入你自己的原始dataframe
# 这里模拟你给出的样例数据结构
df = pd.DataFrame({
    "date": ["03/03/2018", "03/03/2018", "02/03/2018"],
    "ID": [12345, 89547, 12345],
    "value_1": [111, 222, 333],
    "value_2": [1, 2, 5],
    "value_3": [30, 50, 80]
})

# 转换date为目标格式
df["date"] = pd.to_datetime(df["date"], format="%d/%m/%Y").dt.strftime("%Y-%m-%d 09:00:00")
# 重命名字段匹配目标结构
df = df.rename(columns={"ID": "Id"})

# 逐行组装嵌套结构
xyz_content = []
for _, row in df.iterrows():
    xyz_content.append({
        "Id": row["Id"],
        "date": row["date"],
        "value_3": row["value_3"],
        "value_2": row["value_2"],
        "ABC": [{"value_1": row["value_1"], "type": "int"}]
    })

# 生成最终JSON
final_result = {"XYZ": xyz_content}

# 如需导出为JSON文件,可执行:
# with open("output.json", "w", encoding="utf-8") as f:
#     json.dump(final_result, f, ensure_ascii=False, indent=4)

注:你提供的目标JSON样例中写的"Id": 123456为笔误,代码会自动匹配原始dataframe中的真实ID值,和数据逻辑保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 14:54:09