[英]How to force delete_item using Python (boto3) to return an error when an item does not exist in DynamoDB?
[英]Python: Boto3, specifying attribute names for delete_item operation
以下代碼給了我一個錯誤:
dynamo_table.delete_item(Key={'segmentUuid': segment_id, 'value': value})
錯誤:
botocore.exceptions.ClientError: 調用 DeleteItem 操作時發生錯誤 (ValidationException):提供的關鍵元素與架構不匹配
經過一番搜索,我發現問題是由於排序鍵列被稱為value
,這是 Dynamo 中的保留關鍵字。 不幸的是,boto3 似乎不允許我指定使用 ExpressionAttributeName 參數,因為它不支持delete_item
操作中的 Key。 有人可以建議我可以做些什么來解決這個問題嗎?
作為保留字的value
確實令人困惑,但該錯誤應該是
"Attribute name is a reserved keyword; reserved keyword: value"
在這種情況下。
當您嘗試按非哈希/排序鍵的字段匹配項目時,會發生錯誤。 所以為了讓這個特定的delete_item
工作,你需要一個GSI
segmentUuid → 哈希鍵
值 → 排序鍵
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.