'Delete an item and all of it\'s attributes by primary key.
You can perform a conditional delete by specifying an
expected rule.
:type table_name: str
:param table_name: The name of the table containing the item.
:type key: dict
:param key: A Python version of the Key data structure
defined by DynamoDB.
:type expected: dict
:param expected: A Python version of the Expected
data structure defined by DynamoDB.
:type return_values: str
:param return_values: Controls the return of attribute
name-value pairs before then were changed.  Possible
values are: None or \'ALL_OLD\'. If \'ALL_OLD\' is
specified and the item is overwritten, the content
of the old item is returned.'

def delete_item(self, table_name, key, expected=None, return_values=None, object_hook=None):

    data = {'TableName': table_name, 'Key': key}
    if expected:
        data['Expected'] = expected
    if return_values:
        data['ReturnValues'] = return_values
    json_input = json.dumps(data)
    return self.make_request('DeleteItem', json_input, object_hook=object_hook)
