首页 > 解决方案 > 筛选 pyodbc 记录集与数据的阈值列表进行比较

问题描述

我有一个要求,我需要根据预定义的对象列表过滤来自 pyodbc 的输出。

来自 pyodbc 的数据。

 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))

现在,我想从 pyodbc 的数据中为“gf”列表中的每个组获取一个过滤列表,该列表满足在 QuestionFilter Object 中为每个组指定的条件。

A组的输出应该是

question  | Response | id
 ___________________________
 question1 | 6        |  200
 question3 | yes      |  44

GroupB 的输出应该是


     question  | Response | id
     ___________________________
     question4 | no       |  5000
     question5 | 7        |  5

感谢您在这方面的帮助。

谢谢你。

标签: pythonpython-3.xloops

解决方案


我通过循环分组过滤器然后通过问题过滤器并将数据与数据中的结果集进行比较来解决。如果它返回结果,我扩展一个主列表。

最终列表是过滤后的结果集。


推荐阅读