K P*_*osh 2 python sql sqlalchemy
我正在编写一个简单的测试,以验证“ id”列中不同值的数量是否与每个表的行数匹配。我期望能够访问对象的特定值,但是当我运行代码并尝试打印变量的值时,我可以看到我的对象是sqlalchemy.engine.result.ResultProxy对象,位于...,而不是人类可读的东西。我已经在SQLAlchemy网站上呆了一个多小时,并在Google搜索了我的问题的多个排列,但是没有找到我想要的东西。
我的代码(带终端输出)如下:
from sqlalchemy import create_engine
engine = create_engine('postgresql://kyle.pekosh@localhost:5432/testload')
connection = engine.connect()
id_count = connection.execute('SELECT COUNT(DISTINCT(id)) FROM csv.agencies')
id_count
<sqlalchemy.engine.result.ResultProxy object at 0x10357d290>
Run Code Online (Sandbox Code Playgroud)
这是SQLAlchemy的预期行为。您需要与ResultProxy进行交互。根据SQLAlchemy的文档:
返回的结果是ResultProxy的实例,该实例引用DBAPI游标,并提供与DBAPI游标的接口很大程度上兼容的接口。当所有结果行(如果有)用完时,ResultProxy将关闭DBAPI游标。不返回任何行的ResultProxy,例如UPDATE语句的行(不返回任何行),在构造后立即释放游标资源。
ResultProxy API允许您获取数据:
results = connection.execute('SELECT COUNT(DISTINCT(id)) FROM csv.agencies')
id_count = results.first()[0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5383 次 |
| 最近记录: |