2017-11-09 3 views
0

SQLAlchemy 쿼리에서 사전을 포함하는 집계 배열을 가져올 수 있습니까? 예 : SQLalchemy 쿼리에서 집계 배열 가져 오기

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'}]), 
] 

답변

1

나는 당신이 당신의 사전 구축 json_build_object()을 사용할 수있는 것 같아요 : 키가 문자열이 될 것이라는 경고와 함께

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() 

을 비교 예제의 정수 키.