2015-08-14 42 views
1

我正在尝试使用列表中的字符串和查询的列表或所有字符串的组合。我想知道这样的事情是否可以在下面完成。使用Conjuctions查询SQL Alchemy

​​

所以基本上,我通过列表中每个项目迭代,并试图通过concatinating做一个结合。问题的关键是我不知道列表中有多少物品......但是我想按逻辑将它们放在一起,这样它们都会形成连接。我最终得到了以下错误:

类型错误:unsuported操作类型为&:“诠释”和BinaryExpression

在现实中,我mean't使用位或符号来写这个... “|”但我想如果你能做到这一点,然后它应该为OR工作。

回答

1

我觉得下面的例子应该可以帮助您:

from sqlalchemy import or_, and_ 

company_filters = ["Filter1", "Filter2"] # as many as you like 

clauses = [(Exception.company == c) for c in company_filters] 
q = session.query(Exception) 
q = q.filter(and_(*clauses)) # or `or_(*clauses)` 
+0

感谢。这工作,我最终将其扩展到:\t q = q.filter(and_(或_(*子句)或_(* other_clauses)))。我从来没有想过使用星号多个参数的符号传入多个参数。 – bud