Python如何在账户信息中正确查找emailVerified为True的指定值
现有代码的问题
- 你错误地将结构化字典对象当作字符串进行子串匹配:
accountinfo是接口返回的字典类型数据,Python中in关键字作用于字典时,默认仅判断指定内容是否是字典的键,完全不会匹配键值对的组合字符串,因此你的判断逻辑永远不会成立。 - 即使你提前将
accountinfo转为字符串进行匹配,也会因为序列化时的空格差异、引号类型(单/双引号)、字段顺序变化等问题随机匹配失败,该写法本身就不具备可靠性。
正确实现逻辑
直接读取accountinfo中的emailVerified字段值进行布尔判断即可,修正后的代码如下:
# check for verification while True: # 直接读取字典字段判断,注意字段名大小写要和实际返回的一致 if accountinfo.get('emailVerified', False): break else: print("Your email has not been verified! Please verify it with the new link we have sent.") auth.send_email_verification(user['idToken']) menu()
- 这里用
dict.get()方法是为了避免accountinfo中不存在emailVerified字段时报错,默认返回False可以兼容字段缺失的场景。 - 如果确认
accountinfo结构固定一定会包含该字段,也可以直接写if accountinfo['emailVerified']:。
补充说明:如果你的
accountinfo是嵌套结构,emailVerified不在顶级字段下,按照实际的结构层级调整取值路径即可,无需再用字符串匹配的方式。
内容的提问来源于stack exchange,提问作者AceKiller250
相关产品推荐
相关产品推荐

