使用多个密钥

时间:2017-12-19 15:47:46

标签: python amazon-web-services amazon-dynamodb boto3

我对dynamodb比较新,所以请耐心等待。 我有一个非常大的数据集,我正在设计一个API。我正在尝试支持具有q查询参数的路由,该参数允许用户缩小搜索范围 /api/v1/base?q=this<10,that>30,else>20

我的方法是解析查询字符串并返回适当的boto3.dynamodb.conditions.Attr。所以基于以上我有 Attr('this').lt(10) & Attr('that').lt(30) & Attr('else').lt(20)

但是,如果我尝试这样做botocore会引发错误Invalid FilterExpression: The expression has redundant parentheses

只有当我合并两个attr

时才会发生这种情况

我不完全确定我做错了什么,所以任何帮助都会受到赞赏

修改

这是一些代码

def filter_serial_no(serial_no, filter_string):
    try:
        response = table.query(
            KeyConditionExpression=Key('sn').eq(serial_no),
            FilterExpression=Attr('ENGINE_LOAD').gt(32) & Attr('MAF').gt(400) & Attr('SPEED').lt(10)
        )
    except ClientError as e:
        print(e.response['Error']['Message'])
    else:
        return response['Items']

结果

Invalid FilterExpression: The expression has redundant parentheses

0 个答案:

没有答案