sqlalchemy打印结果而不是对象

时间:2017-02-07 15:00:24

标签: python sqlite sqlalchemy

我正在尝试使用下面的代码将我的查询结果打印到控制台,但它不断返回我的对象​​位置。

test = connection.execute('SELECT EXISTS(SELECT 1 FROM "my_table" WHERE Code = 08001)')
print(test)

我得到的结果是 - <sqlalchemy.engine.result.ResultProxy object at 0x000002108508B278>

如何打印value而不是对象?

我问的原因是因为我想使用该值来进行比较测试。 EG:

if each_item not in test:
    # do stuffs

2 个答案:

答案 0 :(得分:3)

像这样,test包含查询返回的所有行。

如果你想要可以迭代的东西,你可以使用fetchall。像这样:

test = connection.execute('SELECT EXISTS(SELECT 1 FROM "my_table" WHERE Code = 08001)').fetchall()

然后你可以迭代一个行列表。每行将包含所有字段。在您的示例中,您可以按位置访问字段。你只有一个在第一位。这就是你如何访问1

for row in test:
    print(row[0])

答案 1 :(得分:0)

test是包含行值的对象。因此,如果列的名称为value,则可以使用test.value调用它。

如果您正在寻找更“方便”的方法(比如遍历test的每一列),您必须明确定义这些函数(作为test的方法或者作为迭代这些类型行的其他函数。)