sqlalchemy打印结果而不是对象


问题内容

我正在尝试使用以下代码将查询结果打印到控制台,但它始终向我返回对象位置。

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

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

如何打印出value而不是对象?

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

if each_item not in test:
    # do stuffs

问题答案:

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

如果您想要可以迭代的内容,可以使用fetchall例如。像这样:

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

然后,您可以遍历行列表。每行将包含所有字段。在您的示例中,您可以按字段位置访问字段。您在第一位置只有一个。这样便可以访问1

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