SQLAlchemy:访问 group_concat 的数据

SQLAlchemy: Access data of group_concat

我正在学习python,也许我下面的问题听起来有点傻,但我自己找不到答案:

在我的代码中,我有以下查询:

jobs = session.query(Ecordov, Ecordovadr, func.group_concat(Ecordovadr.ooaname1)).outerjoin(Ecordovadr).filter(Ecordov.oovpudate.like('2015-07-02')).group_by(Ecordov.oovorder).order_by(desc(Ecordov.oovputimev))

它被评估为:

SELECT ecordov.oovkey AS ecordov_oovkey, ecordov.oovorder AS ecordov_oovorder, ecordov.oovpudate AS ecordov_oovpudate, ecordov.oovputimev AS ecordov_oovputimev, ecordovadr.ooakey AS ecordovadr_ooakey, ecordovadr.ooaname1 AS ecordovadr_ooaname1, ecordovadr.ooaorder AS ecordovadr_ooaorder, group_concat(ecordovadr.ooaname1) AS group_concat_1 
FROM ecordov 
LEFT OUTER JOIN ecordovadr ON ecordov.oovorder = ecordovadr.ooaorder 
GROUP BY ecordov.oovorder 
ORDER BY ecordov.oovputimev DESC

运行 这直接反对 mysql 按预期工作并给了我预期的结果。

此外,做类似

的事情
for x in jobs:
    x.Ecordov.oovorder

在我的 python 代码中给出了正确的结果。

但是,我不知道如何访问 group_concat 函数的数据。 我试过

的变体
for x in jobs:
    x.group.concat1

但我得到的只是:

AttributeError: 'result' object has no attribute 'group'

谁能指出我正确的方向?看来,我自己也想不通。

在此先致谢并致以最诚挚的问候!

func.group_concat(Ecordovadr.ooaname1) 在结果集中创建一个匿名字段,因此无法通过名称访问。

要按名称访问它,必须像这样指定标签:

func.group_concat(Ecordovadr.ooaname1).label('ooanames')

这将计算为以下 sql:

group_concat(ecordovadr.ooaname1) AS 'ooanames'

那么,可以表示为:

for x in jobs:
    x.ooanames

如果未指定标签,则该字段仍可按位置单独访问,即

for x in jobs:
    x[7] # unless I miscounted from your example