Python 3.x python中的boto3条件删除

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

我有一个具有以下模式的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.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")