code: def parse_html_list(dictionary, prefix=''):
      
      ret = {}
      regex = re.compile(r'^%s\[([0-9]+)\](.*)$' % re.escape(prefix))
      for field, value in dictionary.items():
          match = regex.match(field)
          if not match:
              continue
          index, key = match.groups()
          index = int(index)
          if not key:
              ret[index] = value
          elif isinstance(ret.get(index), dict):
              ret[index][key] = value
          else:
              ret[index] = MultiValueDict({key: [value]})
      return [ret[item] for item in sorted(ret.keys())]
docs: Used to suport list values in HTML forms.
      Supports lists of primitives and/or dictionaries.
  
      * List of primitives.
  
      {
          '[0]': 'abc',
          '[1]': 'def',
          '[2]': 'hij'
      }
          -->
      [
          'abc',
          'def',
          'hij'
      ]
  
      * List of dictionaries.
  
      {
          '[0]foo': 'abc',
          '[0]bar': 'def',
          '[1]foo': 'hij',
          '[1]bar': 'klm',
      }
          -->
      [
          {'foo': 'abc', 'bar': 'def'},
          {'foo': 'hij', 'bar': 'klm'}
      ]