У меня есть требование, где мне нужно отфильтровать вывод из pyodb c на основе предопределенного списка объектов.
Данные из pyodb c.
question | Response | id
___________________________
question1 | 6 | 200
question2 | 3 | 23
question3 | yes | 44
question4 | no | 5000
question5 | 7 | 5
Объект, определенный для хранения критериев:
class GroupFilter(object):
def __init__(self,group,question_filters):
self.group=group
self.question_filters=question_filters
class QuestionFilter(object):
def __init__(self,question,threshold,operator):
self.question=question
self.threshold=threshold
self.operator=operator
Критерии фильтра определены как
g1q1=QuestionFilter("question1",5,">")
g1q3=QuestionFilter("question3","yes","=")
g1q5=QuestionFilter("question5","8",">=")
g1ql=[g1q1,g1q3,g1q5]
g2q1=QuestionFilter("question1",6,">")
g2q3=QuestionFilter("question3","no","=")
g2q5=QuestionFilter("question5","8","<")
g2ql=[g2q1,g2q3,g2q5]
gf=[]
gf.append(GroupFilter("groupA",g1ql))
gf.append(GroupFilter("groupB",g2ql))
Теперь я хотел бы получить отфильтрованный список из данных из pyodb c для каждой группы в списке "gf", который удовлетворяет критериям, указанным в объекте QuestionFilter для каждой группы.
Вывод для группы A должно быть
question | Response | id
___________________________
question1 | 6 | 200
question3 | yes | 44
Выход для группы B должен составлять
question | Response | id
___________________________
question4 | no | 5000
question5 | 7 | 5
Спасибо за помощь.
Спасибо.