code: def url_param2value(param):
      
      if param == None:
          return Null
      if param == None:
          return Null
  
      def _decode(v):
          output = []
          i = 0
          while i < len(v):
              c = v[i]
              if c == "%":
                  d = hex2chr(v[i + 1:i + 3])
                  output.append(d)
                  i += 3
              else:
                  output.append(c)
                  i += 1
  
          output = text_type("".join(output))
          try:
              return json2value(output)
          except Exception:
              pass
          return output
  
      query = Data()
      for p in param.split('&'):
          if not p:
              continue
          if p.find("=") == -1:
              k = p
              v = True
          else:
              k, v = p.split("=")
              v = _decode(v)
  
          u = query.get(k)
          if u is None:
              query[k] = v
          elif is_list(u):
              u += [v]
          else:
              query[k] = [u, v]
  
      return query
docs: CONVERT URL QUERY PARAMETERS INTO DICT