如何使用python在同一语句中使用AND和OR在DynamoDB中查询/扫描表



我想使用python在DynamoDB上查询一个表。这个查询的问题是,我想在同一个查询中使用AND和OR条件。当值为B或C时,我希望查询从一列中检索值。

我有下表:

domain          validation_A        validation_B        validation_C
---------       -----------------   ---------------     ---------------
drene.com       pass                pass                pass
drene.com       pass                true                pass
drene.com       fail                pass                pass

在正则SQL表达式中,我将使用:

Select * 
from 
ValidationTable 
where 
domain = 'drene.com' and 
validation_A = 'pass' and 
(validation_B = 'pass' or validation_B = 'true') 

我不知道如何在DynamoDB/Pythom 中做到这一点

我尝试了以下方法:

response = table.scan(
IndexName="Date-index",
FilterExpression=Key('domain').eq('drene.com') & Attr('validation_A').eq('pass') & (Attr('validation_B').eq('pass') || Attr('validation_B').eq('true'))

)

但不起作用

我需要查询将前2行带到我这里。

使用|而不是||

response = table.scan(
IndexName="Date-index",
FilterExpression=Key('domain').eq('drene.com') & Attr('validation_A').eq('pass') & (Attr('validation_B').eq('pass') | Attr('validation_B').eq('true'))

最新更新