0

ResultProxy場合によっては、ORM の結果よりも使いやすいと思います(ドキュメントでは、完全なテーブルで列を反復できることを理解しています)。私はこれを試しました:

query = session.query(Table1)
results = [ResultProxy(a) for a in query]

...しかし、次のように失敗します:

AttributeError: 'Table1' object has no attribute 'dialect'
4

2 に答える 2

1

そのような ResultProxy を単にインスタンス化することはできません。これは、DBAPI カーソルと、ステートメントがどのように構築されたかに関するコンテキスト情報に固有のものです。query.statement から取得するには、Session.execute() を使用します。ただし、Query にメソッドを追加して、直接操作する ResultProxy を提供することは難しくありません。

于 2013-08-13T14:04:26.047 に答える
0

素早い回答:

conn = engine.connect()
result_proxy = conn.execute(query.selectable)

ドキュメントはこちら

名前で列インデックスを取得することもできます...

col_index = query.selectable.columns.keys().index(id_column_name)

...そして、そのインデックスで結果を取得します:

first_row_col_content = query.all()[0][col_index]
于 2013-09-06T07:30:52.330 に答える