dynamodb boto3中的update_item示例 - python

在the documentation之后,我试图创建一条更新语句,该语句将更新或添加动态表中只有一个属性(如果不存在)。

我正在尝试

response = table.update_item(
    Key={'ReleaseNumber': '1.0.179'},
    UpdateExpression='SET',
    ConditionExpression='Attr(\'ReleaseNumber\').eq(\'1.0.179\')',
    ExpressionAttributeNames={'attr1': 'val1'},
    ExpressionAttributeValues={'val1': 'false'}
)

我得到的错误是:
botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the UpdateItem operation: ExpressionAttributeNames contains invalid key: Syntax error; key: "attr1"
如果有人做了与我要达到的目标相似的事情,请分享示例。

参考方案

找到了工作示例here,将表的所有索引作为键列出非常重要,这在更新之前将需要其他查询,但是它可以工作。

response = table.update_item(
    Key={
        'ReleaseNumber': releaseNumber,
        'Timestamp': result[0]['Timestamp']
    },
    UpdateExpression="set Sanity = :r",
    ExpressionAttributeValues={
        ':r': 'false',
    },
    ReturnValues="UPDATED_NEW"
)

45码