繁体   English   中英

boto3 DynamoDB - 查询操作:ExpressionAttributeNames 包含无效键

[英]boto3 DynamoDB - Query operation: ExpressionAttributeNames contains invalid key

我有以下源代码来过滤来自 DynamoDB 的项目。

    ...
    session = boto3.session.Session()
    db = session.resource('dynamodb', region_name=region, endpoint_url=endpoint)
    self.table_obj = db.Table(table_name)

    filter_expression = ':status_name <> :status_val'
    attr_names = {'status_name': 'status'}
    attr_values = {'status_val': 'UPDATED'} 

    response = table.query(FilterExpression=filter_expression,
                           ExpressionAttributeNames=attr_names,
                           ExpressionAttributeValues=attr_values)

但是,我收到以下错误:

ClientError: An error occurred (ValidationException) when calling the Query operation: ExpressionAttributeNames contains invalid key: Syntax error; key: "status_name"

我看不出上面的代码有什么问题,我错过了什么吗?

根据表达式属性名称文档

表达式属性名称是您在 Amazon DynamoDB 表达式中用作实际属性名称的替代项的占位符。 表达式属性名称必须以井号 (#) 开头,后跟一个或多个字母数字字符。

我认为您在占位符属性名称中缺少磅(#)。

尝试改变这一点

attr_names = {'status_name': 'status'}

attr_names = {'#status_name': 'status'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM