首页 > 解决方案 > 没有结果时 SQLAlchemy all() 返回什么

问题描述

.all()我想如果在 SQLAlchemy中如果没有找到结果则返回一个空列表,我可能可以简化这一点。请指教:

@classmethod
def list_for(cls, account_id):
    result = list()
    rows = Session.query(UserAbility).filter_by(account_id=account_id)
    for row in rows:
        result.append(row.ability_id)
    return result

标签: pythonsqlalchemy

解决方案


正如文档所说,all()将查询结果作为列表返回。因此,空结果返回为 ...

此外,由于您似乎只使用 ID,您可以查询UserAbility.ability_id并执行

return [i[0] for i in Session.query(UserAbility.ability_id).filter_by(account_id=account_id).all()]

推荐阅读