code: def multikey_sort(items, columns):
      
      comparers = [
          ((itemgetter(col[1:].strip()), -1) if col.startswith('-') else (itemgetter(col.strip()), 1))
          for col in columns
      ]
  
      def cmp(a, b):
          return (a > b) - (a < b)
  
      def comparer(left, right):
          comparer_iter = (
              cmp(fn(left), fn(right)) * mult
              for fn, mult in comparers
          )
          return next((result for result in comparer_iter if result), 0)
      return sorted(items, key=cmp_to_key(comparer))
docs: Source: https://stackoverflow.com/questions/1143671/python-sorting-list-of-dictionaries-by-multiple-keys