我有一个 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)}
