docs: def _process_response(response):
          """Process the raw AWS response, returning either the mapped exception
          or deserialized response.
  
          :param tornado.concurrent.Future response: The request future
          :rtype: dict or list
          :raises:  sprockets_dynamodb.exceptions.DynamoDBException
  
          """
          error = response.exception()
          if error:
              if isinstance(error, aws_exceptions.AWSError):
                  if error.args[1]['type'] in exceptions.MAP:
                      raise exceptions.MAP[error.args[1]['type']](
                          error.args[1]['message'])
              raise error
          http_response = response.result()
          if not http_response or not http_response.body:
              raise exceptions.DynamoDBException('empty response')
          return json.loads(http_response.body.decode('utf-8'))