SQLAlchemy使用filter_by动态创建查询

时间:2018-09-07 03:38:42

标签: python sql sqlalchemy

我是python和SQLAlchemy的新手,所以如果这个问题听起来很明显,请原谅: 我正在尝试通过传递要过滤的列名称来创建动态查询:

filter_by={"or":{"origin_source_id":"MX01",
                   "origin_client_id":"JP0001"}} 

我可以将'or'/'and'/'>'/'<'作为运算符

目标是创建一个像这样的表达式:

session.query(dbClass).filter(dbClass.origin_client_id=='JP0001' or dbClass.origin_source_id=='MX01') 

,如果定义了以下内容:

filter_by={"origin_source_id":"MX01"}

创建类似这样的表达式:

session.query(dbClass).filter(dbClass.origin_source_id=="MX01")

,如果定义为:

filter_by={"and":{"origin_source_id":"MX01",
                           "origin_client_id":"JP0001"}}

表达式应为:

session.query(dbClass).filter(dbClass.origin_client_id=='JP0001' or dbClass.origin_source_id=='MX01') 

谁能向我解释如何解析filter_by并提取值以构建查询表达式?

我不知道从哪里开始。

谢谢

0 个答案:

没有答案