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

使用json_normalize生成DataFrame后列存在却报KeyError的问题

问题原因与解决方案
  • 问题根源:你在meta参数里指定的字段名末尾多了空格——'audience_id '和'audience_name '(引号内字段名后存在空格),导致生成的DataFrame列名实际是带末尾空格的(比如'audience_id '),而你调用时用的是不带空格的'audience_id',因此触发KeyError。

  • 验证方法:执行以下代码可以确认列名的实际内容:

    for col in audiences_df.columns:
        print(repr(col))
    

    输出会显示列名是'audience_id '(带空格)而非'audience_id'。

  • 修复方案:

    1. 最规范的方式是修改meta参数,去掉字段名后的空格:
      audiences = response['audiences']        
      audiences_df = pd.json_normalize(
          response['audiences'],
          record_path=['fees'], 
          meta=['audience_id', 'audience_name'],  # 删除字段名末尾的空格
          errors='ignore'
      )
      print(audiences_df.columns)
      print(audiences_df["audience_id"])
      
    2. 若不想修改原代码,调用时需使用带空格的列名:
      print(audiences_df["audience_id "])  # 保留列名末尾的空格
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:35:43