Skip to content

Parse Query Parameters from URL

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

5 snippets available in this sub-category.


Simple

Extract all query parameters as a dictionary

url parse query params dict web

Extract all query parameters as a dictionary

from urllib.parse import urlparse, parse_qs

url = 'https://example.com/search?q=python&lang=en&page=1'
parsed = urlparse(url)
params = parse_qs(parsed.query)
print(params)  # {'q': ['python'], 'lang': ['en'], 'page': ['1']}

Notes

  • parse_qs returns a dict with lists of values
  • Handles repeated keys as lists

Extract single-value query parameters

url parse query params single web

Extract single-value query parameters

from urllib.parse import urlparse, parse_qs

url = 'https://example.com/search?q=python&lang=en&page=1'
params = parse_qs(urlparse(url).query)
single_params = {k: v[0] for k, v in params.items()}
print(single_params)  # {'q': 'python', 'lang': 'en', 'page': '1'}

Notes

  • Only use if you know each key appears once

Handle repeated keys in query string

url parse query params repeated web

Handle repeated keys in query string

from urllib.parse import urlparse, parse_qs

url = 'https://example.com/search?tag=python&tag=web&tag=snippets'
params = parse_qs(urlparse(url).query)
print(params)  # {'tag': ['python', 'web', 'snippets']}

Notes

  • parse_qs always returns lists, even for single values

Complex

Parse query string with missing values and encoded values

url parse query params missing encoded web

Parse query string with missing and encoded values

from urllib.parse import urlparse, parse_qs

url = 'https://example.com/search?q=&lang=en%20US&empty'
params = parse_qs(urlparse(url).query)
print(params)  # {'q': [''], 'lang': ['en US'], 'empty': ['']}

Notes

  • Keys with no value are mapped to ['']
  • Encoded values are automatically decoded

Edge Cases

Parse empty query string

url parse query params empty web

Parse empty query string

from urllib.parse import urlparse, parse_qs

url = 'https://example.com/'
params = parse_qs(urlparse(url).query)
print(params)  # {}

Notes

  • Returns empty dict if no query string present

🔗 Cross-References

🏷️ Tags

url, parse, query, params, dict, repeated, encoded, empty, web

📝 Notes

  • Use parse_qs for robust query parameter parsing
  • Always handle lists for repeated keys
  • For building or modifying queries, see urlencode and urlunparse