python - 筛选 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
感谢您在这方面的帮助。
谢谢你。
解决方案
我通过循环分组过滤器然后通过问题过滤器并将数据与数据中的结果集进行比较来解决。如果它返回结果,我扩展一个主列表。
最终列表是过滤后的结果集。
推荐阅读
- python - 如何根据不同的条件很好地生成一些 Python 脚本?
- linux - 从不同文件中查找相关文本并使用 sed 或 awk 或 grep 进行更新
- c# - windows应用程序如何调用单元测试项目?
- rollback - 部署到 Google Cloud Run 后如何回滚
- css - 有没有办法在 CSS 中设置虚线轮廓的属性?
- javascript - D3.js 投影仅显示随机线
- react-native - TapGestureHandler 没有触发 onHandlerStateChange
- angular - 具有多部分表单的 Angular 后请求具有错误的内容类型
- react-native - 防止 react-native-webview 缓存
- google-chrome-extension - 拒绝加载脚本:https://apis.google.com/js/api.js