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

如何在Pandas中规范化嵌套JSON数据?

处理JSON嵌套字典列表生成规范化表格

场景说明

针对你提供的包含嵌套字典列表的JSON数据(如perfect_tonics.data、perfect_garnishes.data),以下是将其转换为规范化Pandas表格的可行方案:


方法一:使用pd.json_normalize完整参数(推荐)

pd.json_normalize支持指定嵌套列表路径与顶层元数据,可一次性生成关联后的结构化表格:

展开「完美搭配汤力水」数据

import pandas as pd

df_tonics = pd.json_normalize(
    file_json,
    record_path=['perfect_tonics', 'data'],  # 嵌套列表的完整层级路径
    meta=['id', 'name', 'producer', 'country', 'abv'],  # 需要保留的顶层Gin信息字段
    meta_prefix='gin_'  # 给顶层字段加前缀,避免与汤力水字段重名
)

生成的表格每行对应一组Gin-汤力水组合,同时保留Gin的基础信息与汤力水的详情。

展开「完美搭配装饰物」数据

同理处理装饰物嵌套列表:

df_garnishes = pd.json_normalize(
    file_json,
    record_path=['perfect_garnishes', 'data'],
    meta=['id', 'name', 'producer', 'country', 'abv'],
    meta_prefix='gin_'
)

方法二:先扁平化顶层,再展开嵌套列合并

若偏好分步处理:

  1. 先提取顶层扁平化数据:
df_top = pd.json_normalize(file_json)
  1. 展开「完美搭配汤力水」并关联顶层数据:
# 拆分嵌套的汤力水列表为独立行
tonics_expanded = df_top['perfect_tonics.data'].explode().apply(pd.Series)
# 合并顶层数据与展开后的汤力水信息,重置索引避免错位
df_tonics = df_top.drop('perfect_tonics.data', axis=1).join(tonics_expanded).reset_index(drop=True)
  1. 同理处理「完美搭配装饰物」:
garnishes_expanded = df_top['perfect_garnishes.data'].explode().apply(pd.Series)
df_garnishes = df_top.drop('perfect_garnishes.data', axis=1).join(garnishes_expanded).reset_index(drop=True)

注意事项

  • 若JSON包含多条Gin数据,两种方法都会自动遍历所有条目,生成对应的关联行
  • 使用meta_prefix可有效避免顶层字段与嵌套字段的命名冲突(如两个id字段)

内容的提问来源于stack exchange,提问作者Oravecz Péter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:01:02