我的SQLAlchemy代码:
used_emails = list(db.execute(halo4.select(halo4.c.email != '')))
返回:
[(80940L, 'P7J4H-DFDMG-G6HMJ-W7PF9-MDTF1', '1', 'first.last@domain.com', datetime.datetime(2012, 11, 3, 3, 48, 58)), (80939L, 'GCTFY-QPK2Y-PX1CJ-W69QY-PHDGZ', '1', 'first.last@domain.com', datetime.datetime(2012, 11, 3, 15, 8, 15)), (80938L, 'R4XGV-PG461-RGXX7-9R47R-2RWYZ', '1', 'first.last@domain.com', datetime.datetime(2012, 11, 3, 15, 8, 27))]
如何让SQLAlchemy只返回:
[('first.last@domain.com', 'first.last@domain.com', 'first.last@domain.com')]
答案 0 :(得分:0)
以下内容将列出email
列值:
from sqlalchemy.sql.expression import select
used_emails = [row.email for row
in db.execute(select([halo4.c.email], halo4.c.email!='')]
基本上,您告诉select()
函数仅为SELECT
列生成email
语句。 execute()
的结果将是ResultProxy
,因此list comprehension的工作是从迭代中获取的单个列行创建email
列字符串值的列表{ {3}}