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

如何使用Pandas将JSON文件转换为多个DataFrame?

如何将包含多个数组的JSON文件转为独立的Pandas DataFrame

问题场景

需要导入的JSON文件内容:

{"TableA": [{"code": "x1","value": 120},{"code": "x2","value": 100}],
"TableB": [{"code": "y1","value": 220},{"code": "y2","value": 230}]}

预期得到两个独立的结构化DataFrame:

>>> TableA
  code  value
0   x1    120
1   x2    100

>>> TableB
  code  value
0   y1    220
1   y2    230

但使用pd.read_json("TableAB.json")读取后,得到的是包含字典单元格的DataFrame,不符合预期:

>>> Tables = pd.read_json("TableAB.json")
>>> Tables
                         TableA                        TableB
0  {'code': 'x1', 'value': 120}  {'code': 'y1', 'value': 220}
1  {'code': 'x2', 'value': 100}  {'code': 'y2', 'value': 230}

解决方案

方法1:直接从JSON字典生成DataFrame

先将JSON文件读取为Python字典,再针对每个键对应的数组直接创建DataFrame:

import pandas as pd
import json

# 读取JSON文件为字典对象
with open("TableAB.json", "r") as file:
    json_data = json.load(file)

# 生成目标DataFrame
TableA = pd.DataFrame(json_data["TableA"])
TableB = pd.DataFrame(json_data["TableB"])

方法2:解析已读取的DataFrame列

如果已经通过pd.read_json得到了Tables,可以用pd.json_normalize解析每个列中的字典数据:

import pandas as pd

Tables = pd.read_json("TableAB.json")
TableA = pd.json_normalize(Tables["TableA"])
TableB = pd.json_normalize(Tables["TableB"])

两种方法都能得到你需要的结构化DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:30:11