关注 the documentation ,我正在尝试创建一个更新语句,如果 dynamodb 表中不存在一个属性,它将更新或添加。
我正在尝试这个
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:调用UpdateItem操作时发生错误(ValidationException):ExpressionAttributeNames包含无效键:语法错误;键:“attr1”
如果有人做过与我想要达到的目标类似的事情,请分享示例。
最佳答案
找到工作示例 here ,将表的所有索引作为键列出非常重要,这将需要在更新之前进行额外的查询,但它可以工作。
response = table.update_item(
Key={
'ReleaseNumber': releaseNumber,
'Timestamp': result[0]['Timestamp']
},
UpdateExpression="set Sanity = :r",
ExpressionAttributeValues={
':r': 'false',
},
ReturnValues="UPDATED_NEW"
)
关于python - dynamodb boto3 中的 update_item 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34447304/