小编典典

从查询结果中获取一列值的列表

python

我有一个User模型,用户可以使用相同的名称。我想获取具有给定名称的所有用户的电子邮件地址。但是,我必须对result[0].email查询结果进行处理才能仅获取一行的电子邮件。我可以使用for循环来执行此操作,但是有没有一种方法可以只获取一个字段的列表而不必每次都执行此操作?

my_result = db.session.query(my_table).filter_by(name=name)
emails = []
for r in my_result:
    emails.append(r.email)

阅读 133

收藏
2021-01-20

共1个答案

小编典典

不,实际上没有办法解决SQLAlchemy查询返回字典列表的事实。如果需要一组特定的字段,则只能查询那些字段,但是如果要 一个
字段的列表,则必须从结果中提取出来。以下示例获取具有给定名称的每个用户的唯一电子邮件列表。

emails = [r.email for r in db.session.query(my_table.c.email).filter_by(name=name).distinct()]
2021-01-20