动态查询sqlalchemy中的列子集

时间:2014-01-13 22:12:26

标签: python orm sqlalchemy

假设表中只需要两列(name和id)。我会编写如下代码:

session.query(User.id, User.name).all()

但如果列名是动态的,

def get_data(table, columns):
    return session.query(*(getattr(table, column) for column in columns)).all()

但上面看起来很难看。有更好的推荐方式吗?

1 个答案:

答案 0 :(得分:5)

您可以使用select()

columns = ['id', 'name']
print session.query(select(from_obj=User, columns=columns)).all()

希望有所帮助。