You need to enable JavaScript to run this app. 使用Python Pandas转换嵌套JSON为CSV时内容合并为一列如何解决
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Pandas转换嵌套JSON为CSV时内容合并为一列如何解决

问题原因

你的JSON文件为二级嵌套结构,所有业务字段都封装在一级键Credit-NoSQL下,直接调用pd.read_json()只会将Credit-NoSQL识别为单列,不会自动展开其内部的字典值为多列,因此出现所有内容挤在同一列的问题。


解决方案

方法1:先提取嵌套层再转换(逻辑直观,适合新手)

先通过json模块读取原始文件,提取每个条目下Credit-NoSQL对应的实际业务数据后,再转换为DataFrame导出:

import pandas as pd
import json

# 加载原始JSON文件
with open("CDMP_E2.json", "r", encoding="utf-8") as f:
    raw_data = json.load(f)

# 提取所有嵌套的业务数据
processed_data = [item["Credit-NoSQL"] for item in raw_data]

# 转换为DataFrame并导出CSV
df = pd.DataFrame(processed_data)
# index=False表示不导出多余的行号列,utf-8-sig编码避免乱码
df.to_csv("CDMP_Output.csv", index=False, encoding="utf-8-sig")

方法2:使用pandas内置工具直接展开嵌套结构

用pd.json_normalize可以直接处理嵌套JSON结构,代码更简洁:

import pandas as pd

# 读取原始JSON
df = pd.read_json("CDMP_E2.json")
# 展开Credit-NoSQL下的所有字段为单独列
df = pd.json_normalize(df["Credit-NoSQL"])
# 导出CSV
df.to_csv("CDMP_Output.csv", index=False, encoding="utf-8-sig")

两种方法导出的CSV都会自动将account、date、type、amount、returneddate作为列头,无returneddate的记录对应位置会自动留空,完全符合预期输出效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 18:27:02