gpt4 book ai didi

python - 我可以在 SQLAlchemy 上进行动态比较吗?

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:20 25 4
gpt4 key购买 nike

我有这个模型:

class PUC(Base):
pucId = Column(Integer, primary_key=True)
asset = Column(TINYINT)
article = Column(TINYINT)
more values ...
more values ...

我需要动态地进行查询(我尝试过这种方式):

pucs = session.query(PUC).filter(PUC[unique_by_param] == 1).all()

unique_by_param 的值来自前端。unique_by_param 的示例为:{str}'asset'{str}'article'{str}'another_model_value'

我真正需要的是一种做事的方法。动态地 session.query(PUC).filter(PUC.asset == 1)session.query(PUC).filter(PUC.article == 1) ,例如我尝试的第一种方法。

使用 (PUC[unique_by_param]) 的结果是 TypeError: 'DeclarativeMeta' object is not subscriptable

我以前用过一种方法,但不是很好的方法,但不是很好的方法:

# this is a accounting table, so this have around 250 columns 
#and this special columns be around 70 variables...
#So this isn't an option o do this.
if unique_by_param == 'asset':
q = (PUC.asset == 1)
elif unique_by_param == 'article':
q = (PUC.article)
elif ...more values:

pucs = session.query(PUC).filter(or_(*q))

最佳答案

这是一种使用 filter_bykeyword argument unpacking 的方法:

keyword = {unique_by_param : 1}
session.query(PUC).filter_by(**keyword).all()

关于python - 我可以在 SQLAlchemy 上进行动态比较吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38838939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com