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 游标以及有关如何构造语句的上下文信息。使用 Session.execute() 从 query.statement 中获取一个。不过,向 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 回答