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

如何将Pandas DataFrame导出为指定格式的JSON文件?

将指定结构DataFrame导出为目标JSON格式

问题描述

现有如下结构的DataFrame:

ABtc-01tc-02
bapcact11
bapcbp22
bapcly33
bapcvsLy44
bapcbsBp55
nsract66
nsrbp77
nsrly88
nsrvsLy99
nsrbsBp1010

需要将其导出为如下格式的JSON文件:

{               
    "expect": {         
        "tc-01": {      
            "bapc":{    
                "act":1,
                "bp":2,
                "ly":3,
                "vsLy":4,
                "bsBp":5
            },  
            "nsr":{ 
                "act":6,
                "bp":7,
                "ly":8,
                "vsLy":9,
                "bsBp":10
            }
        },
        "tc-02": {      
            "bapc":{    
                "act":1,
                "bp":2,
                "ly":3,
                "vsLy":4,
                "bsBp":5
            },  
            "nsr":{ 
                "act":6,
                "bp":7,
                "ly":8,
                "vsLy":9,
                "bsBp":10
            }
        }
    }           
}

解决方案

可以通过Pandas的索引操作和字典推导实现,具体代码如下:

import pandas as pd
import json

# 模拟目标DataFrame(实际使用时可替换为你的数据源)
data = [
    ["bapc", "act", 1, 1],
    ["bapc", "bp", 2, 2],
    ["bapc", "ly", 3, 3],
    ["bapc", "vsLy", 4, 4],
    ["bapc", "bsBp", 5, 5],
    ["nsr", "act", 6, 6],
    ["nsr", "bp", 7, 7],
    ["nsr", "ly", 8, 8],
    ["nsr", "vsLy", 9, 9],
    ["nsr", "bsBp", 10, 10]
]
df = pd.DataFrame(data, columns=["A", "B", "tc-01", "tc-02"])

# 设置多层索引:以A、B列为层级索引
df.set_index(["A", "B"], inplace=True)

# 构建目标JSON的嵌套结构
result = {"expect": {}}
# 遍历每个测试列(tc-xx)
for col in df.columns:
    # 将列数据转换为A→B→值的嵌套字典
    col_dict = df[col].unstack(level=0).to_dict()
    corrected_dict = {a: {b: val for b, val in items.items()} for a, items in col_dict.items()}
    result["expect"][col] = corrected_dict

# 导出为格式化的JSON文件
with open("output.json", "w") as f:
    json.dump(result, f, indent=4)

代码说明

  1. 设置多层索引:将A和B列设为层级索引,为后续按分组转换字典做准备。
  2. 转换嵌套字典:对每个tc-xx列,通过unstack展开层级索引,再调整字典嵌套顺序,得到A→B→数值的结构。
  3. 导出JSON:将构建好的嵌套结构写入JSON文件,indent=4参数用于生成可读性更强的格式化输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:15:27