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

Python检测JSON响应是否包含对象时break语句不触发如何解决

问题原因分析
  • 第一处错误:print()函数的返回值固定为None,你所有基于print(xxx)返回值的判断逻辑都不生效。你写的第一个if分支判断print(...) is None永远为真,导致后续elif分支永远不会执行,这是break语句无法触发的核心原因。
  • 第二处错误:['id'] in xxx的判断逻辑错误,该写法是判断列表['id']这个整体是否是xxx的元素,而不是判断xxx内的对象是否存在id键。
  • 额外问题:循环内反复调用email.get_list_of_emails()会发起多次重复请求,完全没有必要。
修正后的代码
from tempmail import TempMail
import time
import pyperclip

email = TempMail()
email.generate_random_email_address()
email_addr = f"{email.login}@{email.domain}"
print(email_addr)
pyperclip.copy(email_addr)

while True:
    # 先把接口返回结果存到变量,不要和print操作绑定
    email_list = email.get_list_of_emails()
    print(email_list)
    # 判断邮件列表非空,且列表内第一个元素存在id键(可根据你的需求调整判断逻辑)
    if email_list and isinstance(email_list, list) and 'id' in email_list[0]:
        break
    time.sleep(5)
补充说明

如果你的需求是只要收到邮件(列表非空)就跳出循环,判断逻辑可以简化为if email_list:即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:36:04