Dynamically query a subset of columns in sqlalchemy
orm, python, sqlalchemy
Solution
You can get use of select():
from sqlalchemy.sql import select
columns = ['id', 'name']
print(session.query(select(from_obj=User, columns=columns)).all())
Hope that helps.
Problem
Assume only two columns(name and id) are needed from a table. I would code something like below: ``` session.query(User.id, User.name).all() ``` But if the column names are dynamic, ``` def get_data(table, columns): return session.query(*(getattr(table, column) for column in columns)).all() ``` But the above one looks ugly. Is there a better recommended way?