code: def scan(self, table_name, scan_filter=None,
               attributes_to_get=None, limit=None,
               count=False, exclusive_start_key=None,
               object_hook=None):
          
          data = {'TableName': table_name}
          if scan_filter:
              data['ScanFilter'] = scan_filter
          if attributes_to_get:
              data['AttributesToGet'] = attributes_to_get
          if limit:
              data['Limit'] = limit
          if count:
              data['Count'] = True
          if exclusive_start_key:
              data['ExclusiveStartKey'] = exclusive_start_key
          json_input = json.dumps(data)
          return self.make_request('Scan', json_input, object_hook=object_hook)
docs: Perform a scan of DynamoDB.  This version is currently punting
          and expecting you to provide a full and correct JSON body
          which is passed as is to DynamoDB.
  
          :type table_name: str
          :param table_name: The name of the table to scan.
  
          :type scan_filter: dict
          :param scan_filter: A Python version of the
              ScanFilter data structure.
  
          :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 limit: int
          :param limit: The maximum number of items to return.
  
          :type count: bool
          :param count: If True, Amazon DynamoDB returns a total
              number of items for the Scan operation, even if the
              operation has no matching items for the assigned filter.
  
          :type exclusive_start_key: list or tuple
          :param exclusive_start_key: Primary key of the item from
              which to continue an earlier query.  This would be
              provided as the LastEvaluatedKey in that query.