我对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