SqlProxyRow中的类型为long的结果为字符串

时间:2012-09-18 13:23:30

标签: python sqlalchemy

我无法将结果中的数据读入正确的类型,例如:

result = engine.execute("SELECT id FROM table WHERE SetId = 5).fetchall()

id 在MySQL DB中的类型为Long

print result
[(1L,), (2L,), (3L,), (4L,), (5L,), (6L,)]


for row in result:
   print row

(1L,) etc..

print type(row)
 <class 'sqlalchemy.engine.base.RowProxy'>

将这些值读取为正确类型Long的最佳方法是什么?我真的不知道如何正确读出RowProxy类中的值

1 个答案:

答案 0 :(得分:2)

SQLAlchemy RowProxy instances不是字符串,而是打印时带字符串表示的对象。

它们就像列表和映射一样;如果您只需要长值,只需在行上循环:

for row in result:
    for value in row:
        print value

或通过它的索引来处理行中的每一列:

for row in result:
    print row[0]

您的查询要求列id,因此现在该行上有一个键:

for row in result:
    print row['id']