使用列对象作为键遍历Sqlalchemy结果行

时间:2019-11-28 15:19:15

标签: python sql sqlalchemy

我正在尝试遍历查询中的(SQLAlchemy Core)结果行,该查询具有(多个)联接和结果集中具有相同名称的多个列。一个最小的例子:

query = select([Table_A, Table_B]).select_from(Table_A.outerjoin(Table_B))

query_result = conn.execute(query)

for row in query_result:

    for column_name, column_value in row.items(): # this breaks due to overlapping column names in Table_A and Table_B
        print(column_name, column_value)

由于我在查询结果中有多个具有相同列名的列,因此无法将列名用作迭代的键。取而代之的是,列对象将提供用作键的好方法:

for col, value in row.items(): # notice the col variable should hold a column object instead of only it's name
    print(col.name, value)

我知道我可以使用列对象作为索引来访问结果行:value = row[Table_A.c.id],因此感觉也可以使用列对象作为键对其进行迭代是有意义的。有人知道此功能是否可用(或可以某种方式解决)吗?

0 个答案:

没有答案