语法错误;标记:“:编号”,靠近:“in:编号”

2024-04-16 08:01:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图通过boto3客户端从AWS DynamoDB表中获取数据

filter_expression = "A1 = :a"
expression_attribute_values = {":a" : {"S":"8"}}

if _numbers:
    filter_expression = "{} and {}".format(
        filter_expression, "Number in :number"
    )
    expression_attribute_values[":number"] = {"SS": _numbers}

search_query = {
    "TableName": XXXXXXXXXXX,
    "FilterExpression": filter_expression,
    "ExpressionAttributeValues": expression_attribute_values,
}
if LastEvaluatedKey:
    search_query["ExclusiveStartKey"] = LastEvaluatedKey

response = client.scan(**search_query)

我面临ValidationException问题

botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the Scan operation: Invalid FilterExpression: Syntax error; token: ":number", near: "in :number"
  • 查询IN产生了问题
  • 尝试{}&NS不工作

你知道怎么解决这个问题吗

多谢各位

打印(搜索和查询)

{'TableName': 'XXXXXXX', 'FilterExpression': 'A1 = :a AND Number IN :number', 'ExpressionAttributeValues': {':a': {'S': '20'}, ':number': {'NS': ['200', '77']}}}


Tags: innumbersearchifa1attributefilterquery