'Return a set of attributes for an item that matches
the supplied key.
: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 attributes_to_get: list
:param attributes_to_get: A list of attribute names.
If supplied, only the specified attribute names will
be returned.  Otherwise, all attributes will be returned.
:type consistent_read: bool
:param consistent_read: If True, a consistent read
request is issued.  Otherwise, an eventually consistent
request is issued.'

def get_item(self, table_name, key, attributes_to_get=None, consistent_read=False, object_hook=None):

    data = {'TableName': table_name, 'Key': key}
    if attributes_to_get:
        data['AttributesToGet'] = attributes_to_get
    if consistent_read:
        data['ConsistentRead'] = True
    json_input = json.dumps(data)
    response = self.make_request('GetItem', json_input, object_hook=object_hook)
    if ('Item' not in response):
        raise dynamodb_exceptions.DynamoDBKeyNotFoundError('Key    does    not    exist.')
    return response
