Python 2.7 将Query()计算为bool

Python 2.7 将Query()计算为bool,python-2.7,sqlalchemy,Python 2.7,Sqlalchemy,在SQL Alchemy中,每个会话查询都会返回一个查询类的实例 我尝试像这样评估查询,希望它的行为与列表类似: if session.query(…).filter_by(…): 然而,它的评估结果总是正确的,所以我最终还是这样做了: if session.query(…).filter_by(…).count(): 这似乎有点冗长和不正确。有没有更好的方法来检查查询是否会返回结果?查询在何时发出SQL时必然是保守的,这就是为什么它会这样做的原因 通常,如果我想查看查询是否返回结果,我会调用.

在SQL Alchemy中,每个会话查询都会返回一个查询类的实例

我尝试像这样评估查询,希望它的行为与列表类似:

if session.query(…).filter_by(…):

然而,它的评估结果总是正确的,所以我最终还是这样做了:

if session.query(…).filter_by(…).count():


这似乎有点冗长和不正确。有没有更好的方法来检查查询是否会返回结果?

查询在何时发出SQL时必然是保守的,这就是为什么它会这样做的原因


通常,如果我想查看查询是否返回结果,我会调用
.first()
,这样数据库至少只需要找到一行而不是所有行,就可以确定
.count()

,所以检查.first()是否为None是一个更好的选择,然后是None,是的。尽管我不会阻止您针对各种查询对这两种方法运行timeit测试……好的,当事情进一步发展,并且我有一个相当大的数据集要测试时,我们会这样做。谢谢你的帮助!