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

使用Pandas json_normalize处理缺失record_path的JSON数据报错问题

解决pd.json_normalize的KeyError问题并生成目标DataFrame

问题原因

使用pd.json_normalize指定record_path='data'时,要求所有输入的JSON元素必须包含该键。你的数据中第三个元素缺失data键,第二个元素的data是空数组,这都会触发KeyError——注意errors='ignore'参数仅处理元数据(meta)的缺失,无法解决record_path的键缺失问题。

解决方案

先预处理原始JSON数据,确保每个元素都包含data键:

  • 缺失data键的元素,添加data: [{}]
  • data为空数组的元素,替换为[{}]

这样处理后,空的data会被展开为一行空值,同时保留对应的元数据。

完整代码

import pandas as pd

json_data = [
    {
        "meta_info": {"id": 1, "name": "Alice"},
        "data": [{"value": 100}, {"value": 200}]
    },
    {
        "meta_info": {"id": 2, "name": "Bob"},
        "data": []
    },
    {
        "meta_info": {"id": 3, "name": "Charlie"}
        # "data" key is missing
    }
]

# 预处理JSON数据,确保每个条目都有有效的data字段
for item in json_data:
    if "data" not in item or len(item["data"]) == 0:
        item["data"] = [{}]

# 执行数据归一化
df = pd.json_normalize(
    json_data,
    record_path="data",
    meta=["meta_info.id", "meta_info.name"]
)

print(df)

输出结果

valuemeta_info.idmeta_info.name
100.01Alice
200.01Alice
NaN2Bob
NaN3Charlie

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:15:06