基于条件的python匹配运算符函数

2024-05-23 18:31:15 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用pypika和运算符生成查询时,我对使用多个条件感到有点困惑

from pypika import Field, Query

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

使用上面的代码,我可以为equal添加带有operator.eq的条件,我们可以进行如下其他操作

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

在我的例子中,动态地获取操作值,如

Equal
NotEqual
LessThan
LessThanOrEqual
GreaterThan
GreaterThanOrEqual

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

query = query.where(operator.eq(Field('column1'), 12))

Tags: fromimportlefield运算符equalwhere条件
1条回答
网友
1楼 · 发布于 2024-05-23 18:31:15

使用python dict,如下所示:

import operator


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

像这样使用它

query = query.where(operations[key](Field('column1'), 12))

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

相关问题 更多 >