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

使用Python和Pandas将多层嵌套JSON转换为扁平化DataFrame

实现方案

提供两种常用实现路径,可根据使用场景选择:

方案1:原生Python预处理JSON后转DataFrame

逻辑直观无额外学习成本,灵活度最高:

import pandas as pd

# 假设从API拿到的原始JSON已加载为raw_data变量
raw_data = {
    # 此处替换为你的原始JSON数据
}

result_list = []
# 第一层遍历取日期作为day字段
for day, size_map in raw_data.items():
    # 第二层遍历取每个尺码对应的业务字段
    for size_data in size_map.values():
        # 合并日期字段与业务字段
        result_list.append({
            "day": day,
            **size_data
        })

# 如需生成DataFrame直接调用即可
df = pd.DataFrame(result_list)
# 如需直接获取符合要求的JSON列表,使用result_list即可

方案2:直接使用Pandas内置方法转换

无需手写循环,适合直接对接API响应生成DataFrame的场景:

import pandas as pd

# 原始JSON已加载为raw_data变量
raw_data = {
    # 此处替换为你的原始JSON数据
}

# 第一层日期转为行索引,第二层尺码转为列
df = pd.DataFrame.from_dict(raw_data, orient='index').stack().reset_index()
# 展开业务字段所在的字典列,关联日期字段
df = pd.json_normalize(df[0]).join(df['level_0'].rename('day'))
# 调整为你需要的列顺序
df = df[['day', 'sales', 'balance', 'size_name', 'size_origin']]

两种方案输出结果完全匹配你要求的结构,性能差异在数据量低于10万条时几乎可以忽略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:36:02