Python SQLalchemy查询获取DICT的聚合数组

Python SQLalchemy查询获取DICT的聚合数组,python,postgresql,sqlalchemy,Python,Postgresql,Sqlalchemy,是否可以从SQLAlchemy查询中获取包含词典的聚合数组?e、 g session.query( Object.name, func.array_agg({Location.id: Location.name}).label('locations') )\ .join(Location)\ .all() 因此,预期结果将是: [ ('Horizontal neutral circuit', [{143:'A5'},{145:'A8'},{765:'B12

是否可以从SQLAlchemy查询中获取包含词典的聚合数组?e、 g

session.query(
    Object.name,
    func.array_agg({Location.id: Location.name}).label('locations')
)\
    .join(Location)\
    .all()
因此,预期结果将是:

[
 ('Horizontal neutral circuit',
  [{143:'A5'},{145:'A8'},{765:'B12'}]),
 ('Fletcher, Lopez and Edwards',
  [{41:'A1'},{76:'B8'},{765:'B12'}]),
]
我想你可以用它来建立你的字典:

from sqlalchemy.dialects import postgresql

session.query(
        Object.name,
        postgresql.array_agg(
            func.json_build_object(Location.id,
                                   Location.name)).label('locations'))\
    .join(Location)\
    .group_by(Object.name)\
    .all()
注意,与示例的整数键相比,键将是字符串