Python boto3 DynamoDB-查询操作:ExpressionAttributeNames包含无效密钥

Python boto3 DynamoDB-查询操作:ExpressionAttributeNames包含无效密钥,python,amazon-web-services,amazon-dynamodb,boto3,Python,Amazon Web Services,Amazon Dynamodb,Boto3,我有以下源代码来过滤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_va

我有以下源代码来过滤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)
我看不出上面的代码有什么问题,我是不是遗漏了什么

根据

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

我认为您的占位符属性名称中缺少英镑(#)

试着改变这个

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

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