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

使用json_normalize将JSON转Dataframe时遇问题求解答

关于json_normalize的弃用状态与长度问题解答

我来帮你理清这两个问题:

一、json_normalize并没有被弃用

别担心,json_normalize是pandas中处理嵌套JSON的核心工具,截至当前pandas 2.x版本,它仍然是官方正式支持的函数,完全没有被标记为弃用。可能你看到过一些用pd.DataFrame.from_dict处理JSON的例子,但那只适用于结构简单的场景,面对复杂的嵌套层级,json_normalize依然是最优选择。

二、3200字节JSON的长度相关问题排查

3200字节的JSON其实属于很小的体量,出现长度不匹配这类问题,几乎都是JSON结构或使用方式的问题,给你几个常见的排查方向:

  • 嵌套结构不一致:如果你的JSON数组里,部分条目有嵌套字段、部分没有,或者嵌套层级不统一,json_normalize会自动填充缺失值,但有时候会让你误以为是“长度问题”。这种情况可以明确指定record_path参数来定位要展开的数组,用meta保留顶层的关联字段,示例代码:
    import pandas as pd
    from pandas import json_normalize
    import json
    
    parsed_data = json.loads(jsonStr)
    # 假设嵌套数组在'results'字段下,同时保留顶层的'id'和'category'字段
    df = json_normalize(parsed_data['results'], meta=['id', 'category'])
    
  • JSON格式有语法错误:哪怕是一个缺失的引号、不匹配的括号,都可能导致解析后的数据结构异常,进而在归一化时出现奇怪的长度问题。先验证JSON的有效性:
    import json
    try:
        parsed_data = json.loads(jsonStr)
        print("JSON格式有效")
    except json.JSONDecodeError as e:
        print(f"JSON格式错误,位置在{e.pos}: {e.msg}")
    
  • 顶层数据类型误用:如果你的JSON顶层是单个对象(不是数组),直接传入json_normalize会生成一行多列的DataFrame,看起来像是“长度不对”。这时候只要把单个对象用列表包裹起来就行:
    parsed_data = json.loads(jsonStr)
    df = json_normalize([parsed_data])  # 用[]包裹单个对象
    

内容的提问来源于stack exchange,提问作者Adrian Ezequiel Martinez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:17:35