0

結果から正しい型にデータを読み取ることができません。次に例を示します。

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クラスから値を正しく読み取る方法が本当にわかりません

4

1 に答える 1

2

SQLAlchemyRowProxyインスタンスは文字列ではありませんが、出力時に文字列表現を持つオブジェクトです。

それらはリストとマッピングのように機能します。必要なのが長い値だけの場合は、行をループするだけです:

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

または、行の各列をインデックスで指定します。

for row in result:
    print row[0]

クエリは column を要求するためid、これが行のキーになります。

for row in result:
    print row['id']
于 2012-09-18T13:34:35.147 に答える