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

如何高效将嵌套字典列表转为pandas DataFrame?附JSON解析示例

解析嵌套JSON到Pandas DataFrame并提取唯一键值对

没问题,我来帮你搞定这个嵌套JSON解析成Pandas DataFrame的需求!直接上可运行的代码,再给你拆解下逻辑:

import pandas as pd

# 你的原始JSON数据
json_data = {
    "hits": {
        "hits": [
            {
                "_source": {
                    "TYPES": [
                        {"_ID": 130, "_NM": "ARB-130"},
                        {"_ID": 131, "_NM": "ARB-131"},
                        {"_ID": 132, "_NM": "ARB-132"}
                    ]
                }
            },
            {
                "_source": {
                    "TYPES": [
                        {"_ID": 902, "_NM": "ARB-902"},
                        {"_ID": 903, "_NM": "ARB-903"},
                        {"_ID": 904, "_NM": "ARB-904"}
                    ]
                }
            }
        ]
    }
}

# 提取所有TYPES列表并合并成一个大列表
all_types = [item for hit in json_data["hits"]["hits"] for item in hit["_source"]["TYPES"]]

# 转成DataFrame并去重(确保_ID和_NM的唯一组合)
df = pd.DataFrame(all_types).drop_duplicates(subset=["_ID", "_NM"], keep="first").reset_index(drop=True)

print(df)

代码逻辑拆解:

  1. 提取嵌套数据:用嵌套列表推导式,先遍历外层的hits["hits"]每个元素,再取出每个元素里_source下的TYPES列表,把所有小列表合并成一个包含所有键值对的大列表。
  2. 转成DataFrame:直接用pd.DataFrame()把合并后的列表转成表格。
  3. 去重处理:用drop_duplicates()指定_ID和_NM作为去重依据,保留第一个出现的条目,最后用reset_index()重置索引让它从0开始连续编号。

运行后你就能得到你想要的格式:

_ID     _NM
0  130  ARB-130
1  131  ARB-131
2  132  ARB-132
3  902  ARB-902
4  903  ARB-903
5  904  ARB-904

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:06:47