从sqlalchemy获取COUNT

Aay*_*rki 5 python postgresql sqlalchemy

我有:

res = db.engine.execute('select count(id) from sometable')
Run Code Online (Sandbox Code Playgroud)

返回的对象是sqlalchemy.engine.result.ResultProxy.

我如何从中获取计数值res

Res不是通过索引访问的,但我认为这是:

count=None
for i in res:
    count = res[0]
    break
Run Code Online (Sandbox Code Playgroud)

必须有一个更简单的方法吗?它是什么?我还没发现它.注意:db是一个postgresdb.

Ilj*_*ilä 14

当其他答案有效时,SQLAlchemy为标量查询提供了一个快捷方式ResultProxy.scalar():

count = db.engine.execute('select count(id) from sometable').scalar()
Run Code Online (Sandbox Code Playgroud)

scalar()获取第一行的第一列并关闭结果集,如果不存在行,则返回None.还有Query.scalar(),如果使用Query API.