Skip to main content
 首页 » 编程设计

python之SQLAlchemy 可以将 grouped_by 查询作为字典返回吗

2025年05月04日8Renyi-Fan

我有一个 Trace 模型,我想知道我是否可以做得更好:

traces = Trace.query.filter(some_filtering).all() 
return { 
        student_id: [trace for trace in traces if trace.student_id == student_id] 
        for student_id in student_ids 
    } 

SQLAlchemy 可以直接使用 grouped_by 变量作为字典的键返回字典吗?

请您参考如下方法:

不是纯 SQLAlchemy,而是与 itertools.groupby 结合:

qry = Trace.query.order_by(Trace.student_id) 
grouped = {k: list(g) for k, g in itertools.groupby(qry, lambda t: t.student_id)}