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

Python中识别JSON空列表并设置数据库插入占位符的问题

问题解决

你的代码核心问题是:当emailAddresses是空列表时,for email in item['contacts']['emailAddresses']这个循环根本不会执行,所以里面的判断逻辑完全没机会触发,自然不会输出"boo"。

直接修改代码,先判断整个列表是否为空,再决定输出内容:

results = response.json()['data']
for item in results:
    emails_list = item['contacts']['emailAddresses']
    # 判断列表是否为空(空列表在Python中布尔值为False,not后转为True)
    if not emails_list:
        print("boo")
    else:
        # 列表非空时,遍历每个邮箱对象输出地址
        for email_obj in emails_list:
            print(email_obj['emailAddress'])

补充说明

  • not emails_list是Python中判断空列表最简洁的方式,和len(emails_list) == 0或者emails_list == []效果完全一致,但更符合Pythonic写法。
  • 如果你的需求是每个条目(item)对应一个值(比如空列表时存"boo",非空时存第一个邮箱或者拼接所有邮箱),可以调整逻辑,比如:
    for item in results:
        emails_list = item['contacts']['emailAddresses']
        if not emails_list:
            email_value = "boo"
        else:
            # 取第一个邮箱地址,或者用','.join拼接所有
            email_value = emails_list[0]['emailAddress']
        # 这里可以把email_value用于数据库插入
        print(email_value)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 08:09:24