首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于条件的python匹配算子函数

基于条件的python匹配算子函数
EN

Stack Overflow用户
提问于 2020-04-13 18:59:45
回答 1查看 335关注 0票数 1

在使用pypika与操作符一起生成查询时,我对使用多个条件感到有点困惑。

代码语言:javascript
复制
from pypika import Field, Query

query = Query.from_('test').select('column1','column2')
query = query.where(operator.eq(Field('column1'), 12))

使用上面的代码,我可以使用operator.eqequal添加条件,我们还可以进行如下操作。

代码语言:javascript
复制
operator.lt(a, b)
operator.le(a, b)
operator.eq(a, b)
operator.ne(a, b)
operator.ge(a, b)
operator.gt(a, b)
operator.not

在我的例子中,我得到了动态的操作值,比如

代码语言:javascript
复制
Equal
NotEqual
LessThan
LessThanOrEqual
GreaterThan
GreaterThanOrEqual

如何在不添加大量if条件的情况下形成查询?相反,我试图找到operator.eqoperator.le(a, b)和只有EqualLessThanOrEqual的函数,并将它们用于where条件?

代码语言:javascript
复制
query = query.where(operator.eq(Field('column1'), 12))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-13 19:16:33

使用python,如下所示:

代码语言:javascript
复制
import operator


operations = {
    'Equal': operator.eq,
    'NotEqual': operator.ne,
    'LessThan': operator.lt,
    'LessThanOrEqual': operator.le,
    'GreaterThan': operator.gt,
    'GreaterThanOrEqual': operator.ge,
}

像这样使用它

代码语言:javascript
复制
query = query.where(operations[key](Field('column1'), 12))

其中key = 'LessThan' # Or NotEqual, Equal

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61194784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档