Фильтр pyodb c записей по сравнению с пороговым списком данных - PullRequest
0 голосов
/ 04 марта 2020

У меня есть требование, где мне нужно отфильтровать вывод из 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

Спасибо за помощь.

Спасибо.

1 Ответ

0 голосов
/ 04 марта 2020

Я решил, пройдя через групповой фильтр, а затем через фильтр вопросов и сравнив данные с результирующим набором данных. Если он возвращает результат, я расширяю основной список.

Последний список - отфильтрованный набор результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...