code: def dict_to_obj(cls, dict_, columns, row_columns, tab='', key_on=None):
          
          if isinstance(list(dict_.values())[0], dict):
              row_columns = row_columns or columns or cls._key_on_columns(
                  key_on, cls._ordered_keys(dict_.values()[0]))
              column_index = cls._create_column_index(row_columns)
              if key_on is None:
                  table = [
                      SeabornRow(column_index, [row[c] for c in row_columns])
                      for row in dict_.values()]
              else:
                  table = [SeabornRow(column_index,
                                      [row.get(c, c == key_on and key or None)
                                       for c in row_columns])
                           for key, row in dict_.items()]
  
          elif isinstance(list(dict_.values())[0], list):
              row_columns = row_columns or columns or \
                            cls._key_on_columns(key_on, sorted(dict_.keys()))
              column_index = cls._create_column_index(row_columns)
              if key_on is None:
                  table = [
                      SeabornRow(column_index, [dict_[c][i] for c in columns])
                      for i in range(len(dict_[columns[0]]))]
              else:
                  table = [
                      SeabornRow(column_index, [dict_[c][i] for c in columns])
                      for i in range(len(dict_[columns[0]]))]
  
          else:
              row_columns = row_columns or columns or ['KEY', 'VALUE']
              column_index = cls._create_column_index(row_columns)
              table = [SeabornRow(column_index, [k, v]) for k, v in
                       dict_.items()]
  
          return cls(table, columns, row_columns, tab, key_on)
docs: :param dict_: dict of dict or dict of list
          :param columns: list of strings to label the columns on print out
          :param row_columns: list of columns in the actually data
          :param tab: str of the tab to use before the row on printout
          :param key_on: str of the column to key each row on
          :return: SeabornTable