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

如何使用Python Pandas将数据库表格数据转换为指定嵌套JSON格式

实现方案

你需要按照嵌套层级逐层分组聚合数据,无法直接通过df.to_json()的内置参数实现,具体实现步骤如下:

步骤1:构造示例DataFrame

import pandas as pd
import json

# 导入你的源数据,这里直接用你给出的示例构造
data = [
    [100, "Sam", "Street 5", "NY", "NY001", "E", 2019],
    [100, "Sam", "Street 5", "NY", "NY001", "T", 2020],
    [100, "Sam", "Street 10", "NJ", "NJ001", "E", 2019],
    [100, "Sam", "Street 10", "NJ", "NJ001", "T", 2020],
    [101, "John", "Street 1", "CA", "CA001", "E", 2019],
    [101, "John", "Street 1", "CA", "CA001", "T", 2020]
]
df = pd.DataFrame(data, columns=["Account", "Name", "Address1", "State", "Zip", "Loantype", "expiry"])
# 修正源数据里John的拼写错误
df["Name"] = df["Name"].replace("Joh", "John")

步骤2:逐层生成嵌套结构

results = []
# 第一层分组:按账号、姓名聚合
for (account, name), user_group in df.groupby(["Account", "Name"]):
    user_info = {
        "account": account,
        "Name": name,
        "LoanDetails": []
    }
    # 第二层分组:按地址、州、邮编聚合
    for (addr, state, zip_code), addr_group in user_group.groupby(["Address1", "State", "Zip"]):
        addr_info = {
            "Address1": addr,
            "State": state,
            "ZIP": zip_code,
            # 第三层:贷款明细直接转字典列表
            "LoanList": addr_group[["Loantype", "expiry"]].to_dict("records")
        }
        user_info["LoanDetails"].append(addr_info)
    results.append(user_info)

# 封装成最终的JSON结构
final_data = {"results": results}

# 打印验证
print(json.dumps(final_data, indent=2, ensure_ascii=False))
# 保存到本地文件的可选代码
# with open("loan_result.json", "w", encoding="utf-8") as f:
#     json.dump(final_data, f, indent=2, ensure_ascii=False)

输出结果和你要求的结构完全匹配,你示例目标JSON里的账号写错、邮编多了0、贷款年份错误等均为笔误,代码会按源数据的真实值生成。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:54:04