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

Python调用REST API获取嵌套JSON中contact_primary_email报错求助

解决Python调用REST API获取contact_primary_email字段报错的问题

你遇到的'contact_primary_email'错误是KeyError,说明这个字段不在你当前访问的字典层级里,大概率是嵌套在某个子字典下面了。

步骤1:确认API返回的字段结构

先仔细核对API返回的示例响应,它可能是类似这样的嵌套结构:

{
  "id": 101,
  "first_name": "Alice",
  "last_name": "Smith",
  "contact_details": {
    "contact_primary_email": "alice@example.com",
    "phone": "123456789"
  }
}

这种情况下直接写user['contact_primary_email']肯定找不到字段,得先进入对应的子字典再取值。

步骤2:修改代码,正确访问嵌套字段

别硬取字段,用字典的get()方法更安全,既能避免报错,还能处理字段不存在的场景:

# 假设response_data是API返回的完整数据,包含users列表
for user in response_data.get('users', []):
    # 先获取嵌套的子字典,默认返回空字典防止报错
    contact_section = user.get('contact_details', {})
    # 从子字典里取邮箱,可设置默认值应对无数据的情况
    primary_email = contact_section.get('contact_primary_email', '未提供邮箱')
    # 其他字段正常获取
    user_id = user['id']
    first_name = user['first_name']
    print(f"ID: {user_id}, Name: {first_name}, Email: {primary_email}")

步骤3:调试技巧

如果还是不确定字段位置,直接打印单个用户的完整数据,就能看清所有字段的层级:

print(user)

运行后看控制台输出的字典结构,找到contact_primary_email所在的子节点,再调整代码的访问路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 19:12:10