[英]How to give column list for select statement in sqlalchemy?
下面的代碼用於從“消息”中選擇“國家”,“性別”,其中〜
users = session.query(
Message.country,
Message.gender,
).filter(
Message.date_joined.between(begin_date, end_date),
).all()
當我用這個嘗試sql
columns = (
Message.country,
Message.gender,
)
users = session.query(
columns
).filter(
Message.date_joined.between(begin_date, end_date),
).all()
我有錯誤
sqlalchemy.exc.InvalidRequestError: SQL expression, column, or mapped entity expected - got '(<sqlalchemy.orm.attributes.InstrumentedAttribute object at 0x117f215c8>, <sqlalchemy.orm.attributes.InstrumentedAttribute object at 0x117f21518>)'
我以為如果我給定參數為元組,那將是可能的,但是有例外。
如何為查詢提供列作為變量?
列應該是列表的一部分,並使用load_only
from sqlalchemy.orm import load_only
columns = ['country', 'gender']
companies = session.query(Message).options(load_only(*columns)).filter(
Message.date_joined.between(begin_date, end_date)).all()
您也可以嘗試with_entities
columns = [Message.country, Message.gender]
companies = session.query(Message).filter(
Message.date_joined.between(begin_date, end_date)).with_entities(*columns).all()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.