Python 返回SQLAlchemy搜索查询的结果

Python 返回SQLAlchemy搜索查询的结果,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我正在尝试获取SQLAlchemy查询的结果。我知道,如果我循环查询,我可以将结果放在如下列表中,但对于大量结果来说,这似乎效率低下,而且当结果是如下所示的单个数字时,这看起来很难看。是否有更直接和/或有效的方法返回查询结果 mylist = [] for item in session.query(func.max(mytable.id)): mylist.append(item) 正如您所做的那样,循环遍历结果是正确的。您还可以使用获取序列行列表。也许更有效的方法是不将数据存储在列

我正在尝试获取SQLAlchemy查询的结果。我知道,如果我循环查询,我可以将结果放在如下列表中,但对于大量结果来说,这似乎效率低下,而且当结果是如下所示的单个数字时,这看起来很难看。是否有更直接和/或有效的方法返回查询结果

mylist = []
for item in session.query(func.max(mytable.id)):
    mylist.append(item)

正如您所做的那样,循环遍历结果是正确的。您还可以使用获取序列行列表。也许更有效的方法是不将数据存储在列表中,获取较小的结果集,和/或立即对每行执行操作。如果DBMS支持,也可以使用服务器端游标

当只获取一行和一个字段时,可以使用并获取返回序列的第一个元素。在代码方面,这可能是最有效的:

maxid_mytable = session.query(func.max(mytable.id)).first()[0]

这将是同等的

mylist = session.query(func.max(mytable.id)).all()

在单个结果的实例中,这会更整洁,但在n>1的情况下不起作用。@Michael,然后您刚刚使用了。就像@geertjanvdk建议的那样。将结果返回到什么位置?你需要索引,还是我们循环足够?你说一个结果看起来难看是什么意思?