我正在尝试使用下面的代码将我的查询结果打印到控制台,但它不断返回我的对象位置。
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
答案 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
的方法或者作为迭代这些类型行的其他函数。)