code: def get_item2(self, tablename, key, attributes=None, alias=None,
                    consistent=False, return_capacity=None):
          
          kwargs = {
              'TableName': tablename,
              'Key': self.dynamizer.encode_keys(key),
              'ConsistentRead': consistent,
              'ReturnConsumedCapacity': self._default_capacity(return_capacity),
          }
          if attributes is not None:
              if not isinstance(attributes, six.string_types):
                  attributes = ', '.join(attributes)
              kwargs['ProjectionExpression'] = attributes
          if alias:
              kwargs['ExpressionAttributeNames'] = alias
          data = self.call('get_item', **kwargs)
          return Result(self.dynamizer, data, 'Item')
docs: Fetch a single item from a table
  
          Parameters
          ----------
          tablename : str
              Name of the table to fetch from
          key : dict
              Primary key dict specifying the hash key and, if applicable, the
              range key of the item.
          attributes : str or list, optional
              See docs for ProjectionExpression. If list, it will be joined by
              commas.
          alias : dict, optional
              See docs for ExpressionAttributeNames
          consistent : bool, optional
              Perform a strongly consistent read of the data (default False)
          return_capacity : {NONE, INDEXES, TOTAL}, optional
              INDEXES will return the consumed capacity for indexes, TOTAL will
              return the consumed capacity for the table and the indexes.
              (default NONE)