python sqlalchemy - 如果使用纯 sql 查询,则计算结果行数

问题描述 投票:0回答:2

我将 Python 3.9 与 sqlalchemy 1.4.18 一起使用。

engine = create_engine('sqlite:///somedatabase.sqlite', echo=False)
query = """SELECT ...
    FROM ...
    LEFT JOIN ...
    WHERE ..."""
with engine.connect() as con:
    result = con.execute(query)

如何计算Python代码中变量

result
包含的行数?我不想在 SQL 中使用
COUNT()
。 与

print(dir(result))

我发现有一个

rowcount
,但它始终具有值
-1

变量

result
的类型为
LegacyCursorResult
。在哪里可以找到此类的完整文档? (可能)官方文档只提到 close() 方法: https://docs.sqlalchemy.org/en/14/core/connections.html?highlight=legacycursorresult#sqlalchemy.engine.LegacyCursorResult

非常感谢,如果有人可以帮忙!

python sqlalchemy
2个回答
2
投票

使用 SQLAlchemy 1.4+,您可以使用

Result.all
以列表形式获取结果,然后调用
len
:

rows = result.all()
count = len(rows)

0
投票

我是这样做的:

first_row = result.fetchone() 如果first_row为None:

其他: ...

© www.soinside.com 2019 - 2024. All rights reserved.