code: def replace_query_parameters(request, replacements):
      
      query = request.query
      new_query = []
      replacements = dict(replacements)
      for k, ov in query:
          if k not in replacements:
              new_query.append((k, ov))
          else:
              rv = replacements[k]
              if callable(rv):
                  rv = rv(key=k, value=ov, request=request)
              if rv is not None:
                  new_query.append((k, rv))
      uri_parts = list(urlparse(request.uri))
      uri_parts[4] = urlencode(new_query)
      request.uri = urlunparse(uri_parts)
      return request
docs: Replace query parameters in request according to replacements. The
      replacements should be a list of (key, value) pairs where the value can be
      any of:
        1. A simple replacement string value.
        2. None to remove the given header.
        3. A callable which accepts (key, value, request) and returns a string
           value or None.