首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从查询结果中获取某一列的值列表

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

Stack Overflow用户
提问于 2015-08-06 04:24:20
回答 3查看 21.9K关注 0票数 17

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

代码语言:javascript
复制
my_result = db.session.query(my_table).filter_by(name=name)
emails = []
for r in my_result:
    emails.append(r.email)
EN

Stack Overflow用户

发布于 2020-01-23 06:28:08

有一种方法可以使用values方法从filter_by查询返回特定列。如下所示:

代码语言:javascript
复制
 emails = [r[0] for r in db.session.query(my_table).filter_by(name=name).values('email')]

或者:

代码语言:javascript
复制
 emails = [r[0] for r in User.query.filter_by(name=name).values('email')]

values()接受任意数量的字段名作为参数,并返回一个生成器,该生成器具有来自每个字段名的每个值的元组。使用列表理解来获取该元组emails的第一项,然后将是一个纯字符串电子邮件地址列表。

票数 5
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31842159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档