2015-08-14 63 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