我正在尝试更新DynamoDB中的一行并添加新列
resp = table.update_item(
Key={
'Pkey': 'key1',
'Skey': 'skwy2'
},
UpdateExpression='ADD dateModified :input2, SET IsActive = :input1',
ExpressionAttributeValues={
':input1': False,
':input2' : 'Test'
},
ReturnValues="UPDATED_NEW"
)在input2中出现错误,我甚至尝试了
':input2': {'S' : "Test"}那不管用。
为什么我会面临这样的问题
发布于 2021-07-16 11:20:24
您可以查看https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.ADD - ADD处理数字和集合的文档。
添加操作只支持数字和设置数据类型。
还有一个注意事项:
一般来说,我们建议使用SET而不是ADD。
因为您想要添加新值,所以SET完全能够做到这一点。来自https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET
使用update表达式中的SET操作向项添加一个或多个属性。如果这些属性中的任何一个已经存在,则由新值覆盖它们。
因此,您可以跳过添加操作,只需使用SET
但是,根据python库的不同,您可能需要将值包装为{"BOOL":false}和{"S":"Test"}。
https://stackoverflow.com/questions/68407978
复制相似问题