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

如何处理API返回JSON中owner_id键偶发缺失时的字段提取问题

问题原因

你写的代码拿不到值是两个逻辑错误:

  • 判断键存在的时候找错了对象:'owner_id' in users 是检查最外层的响应总字典有没有这个键,但实际上owner_id是存在于data数组内的单条记录(也就是循环里的each变量)里的,外层字典永远不会有这个键,判断条件始终不成立,循环体根本不会执行,最后只能拿到空列表。
  • 错误使用了while循环:这里只需要对每条记录做一次存在性判断,用if分支就够了,while在这里属于多余逻辑,就算判断条件写对也会触发死循环。
正确实现

基础遍历写法

逻辑最直观,容易理解:

# 先初始化存储结果的空列表
accounts = []
for each in users['data']:
    # 检查当前遍历到的单条记录是否存在owner_id键
    if 'owner_id' in each:
        accounts.append(each['owner_id'])

简洁列表推导式写法

Python中更精简的写法,执行逻辑和上面完全一致:

accounts = [each['owner_id'] for each in users['data'] if 'owner_id' in each]

两种写法都会自动跳过不存在owner_id键的记录,只把存在该键的对应值存入结果列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:06:21