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

如何将嵌套JSON转换为展开的规范化Pandas DataFrame?

解决方案

直接使用pd.json_normalize()的record_path和meta参数就能实现需求,前者指定要展开的嵌套数组,后者保留需要的其他字段,具体代码如下:

import json
import pandas as pd

with open("employee.json") as file:
    data = json.load(file)  

# 展开addresses数组并保留关联字段
data_df = pd.json_normalize(
    data,
    record_path="addresses",  # 目标展开的嵌套数组字段
    meta=[
        "rec_id",
        "timestamp",
        "edited_timestamp",
        ["user", "id"],
        ["user", "name"]
    ]
)

# 调整列名和顺序以匹配预期格式
data_df = data_df.rename(columns={
    "address_type": "addresses.address_type",
    "street1": "addresses.street1",
    "street2": "addresses.street2",
    "city": "addresses.city"
})
data_df = data_df[["rec_id", "addresses.address_type", "addresses.street1", "addresses.street2", "addresses.city", "timestamp", "edited_timestamp", "user.id", "user.name"]]

display(data_df)

关键参数说明

  • record_path="addresses":告诉json_normalize将addresses数组中的每个对象拆分为单独的行。
  • meta列表:指定需要保留的非数组字段,包括顶级字段和嵌套在user下的子字段,这些字段会被复制到每一行对应的展开记录中。

运行后就能得到你需要的完全展开的规范化DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:11:07