如何从嵌套的Pydantic类实例中获取mail类的email、mailid字段值
报错原因说明
- 执行
print(mail.email)报错:mail是你定义的Pydantic模型类,只有实例化后的mail对象才会持有email、mailid这些实例属性,直接访问类本身的同名属性不存在。 - 执行
print(userobj.mails.email)报错:userobj.mails是List[mail]类型,也就是存储了多个mail实例的列表,列表本身没有email属性,需要访问列表内的每个mail实例的对应属性。
正确实现方式
1. 遍历输出所有email
for mail_item in userobj.mails: print(mail_item.email)
运行输出:
aeajhs@gmail.com aeajhsds@gmail.com
2. 一次性收集所有email为列表
email_list = [item.email for item in userobj.mails] print(email_list)
运行输出:
['aeajhs@gmail.com', 'aeajhsds@gmail.com']
3. 输出指定格式的结果
如果需要你期望的逗号分隔带引号的格式,可使用如下代码:
formatted_output = ','.join(f"'{email}'" for email in email_list) print(formatted_output)
运行输出:
'aeajhs@gmail.com','aeajhsds@gmail.com'
如果需要获取mailid的值,将上述代码中的.email替换为.mailid即可。
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

