Python 3.x python中的boto3条件删除
我有一个具有以下模式的dynamoDB数据库:Python 3.x python中的boto3条件删除,python-3.x,amazon-dynamodb,boto3,Python 3.x,Amazon Dynamodb,Boto3,我有一个具有以下模式的dynamoDB数据库: user id payload 123 abcd some value 456 abcd some value 如何删除用户456对应的id abcd?如果用户456不存在怎么办?我试过: try: resource.delete_item( Key={'user': 456, 'id': 'abcd' }) except botocore.except
user id payload
123 abcd some value
456 abcd some value
如何删除用户456对应的id abcd?如果用户456不存在怎么办?我试过:
try:
resource.delete_item(
Key={'user': 456,
'id': 'abcd'
})
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == 'ConditionalCheckFailedException':
print(e.response['Error']['Message'])
else:
raise
else:
print("DeletePortfolio Successful...")
我总是得到“DeletePortfolio Successful”语句,即使我放置了一个像478这样的随机用户,或者保留了用户456并放置了一个像“defg”这样的错误id。仅当存在键和值时,如何执行条件删除?谢谢我想明白了
希望这对任何人都有帮助
def deleteItem(user, id):
try:
resource.delete_item(
Key={'user': user, 'id': id},
ConditionExpression='attribute_exists(id)'
)
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] in ['ConditionalCheckFailedException',
'ParamVAlidationError']:
print(e.response['Error']['Message'])
else:
raise
else:
print("delete successful")