Skip to content

Remove Query Parameters from URL

Zero-dependency Python snippets for removing query parameters from URLs using the standard library.

4 snippets available in this sub-category.


Simple

Remove a single query parameter

url remove query params urlencode web

Remove a single query parameter

from urllib.parse import urlparse, parse_qs, urlencode, urlunparse

def remove_query_param(url, key):
    """Remove a single query parameter from a URL."""
    parsed = urlparse(url)
    query = parse_qs(parsed.query)
    query.pop(key, None)
    new_query = urlencode(query, doseq=True)
    return urlunparse(parsed._replace(query=new_query))

# Example usage
url = 'https://example.com/search?q=python&lang=en&page=1'
new_url = remove_query_param(url, 'lang')
print(new_url)  # https://example.com/search?q=python&page=1

Notes

  • If key is not present, URL is unchanged

Remove multiple query parameters

url remove query params multi urlencode web

Remove multiple query parameters

from urllib.parse import urlparse, parse_qs, urlencode, urlunparse

def remove_query_params(url, keys):
    """Remove multiple query parameters from a URL."""
    parsed = urlparse(url)
    query = parse_qs(parsed.query)
    for key in keys:
        query.pop(key, None)
    new_query = urlencode(query, doseq=True)
    return urlunparse(parsed._replace(query=new_query))

# Example usage
url = 'https://example.com/search?q=python&lang=en&page=1'
new_url = remove_query_params(url, ['q', 'page'])
print(new_url)  # https://example.com/search?lang=en

Notes

  • Removes all specified keys if present

Complex

Remove all query parameters

url remove query params all web

Remove all query parameters

from urllib.parse import urlparse, urlunparse

def remove_all_query_params(url):
    """Remove all query parameters from a URL."""
    parsed = urlparse(url)
    return urlunparse(parsed._replace(query=''))

# Example usage
url = 'https://example.com/search?q=python&lang=en&page=1'
new_url = remove_all_query_params(url)
print(new_url)  # https://example.com/search

Notes

  • Leaves only the base URL and path

Edge Cases

Remove non-existent or encoded keys, empty query

url remove query params edge-case encoded empty web

Remove non-existent or encoded keys, empty query

def remove_query_param(url, key):
    # Function is defined in one of the above code block
    pass


# Remove non-existent key
url = 'https://example.com/search?q=python'
print(remove_query_param(url, 'lang'))  # https://example.com/search?q=python

# Remove encoded key
url2 = 'https://example.com/search?na%20me=John&q=python'
print(remove_query_param(url2, 'na me'))  # https://example.com/search?q=python

# Remove from URL with no query
url3 = 'https://example.com/'
print(remove_query_param(url3, 'q'))  # https://example.com/

Notes

  • Removing a key not present has no effect
  • Encoded keys must match decoded form
  • Removing from empty query leaves URL unchanged

🔗 Cross-References

🏷️ Tags

url, remove, query, params, multi, all, edge-case, encoded, empty, web, urlencode

📝 Notes

  • Use parse_qs and urlunparse for robust query manipulation
  • Always validate and encode/decode keys as needed
  • For adding or modifying queries, see urlencode and parse_qs