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¶
- Reference: See 📂 Add Query Params
- Reference: See 📂 Remove Query Params
- Reference: See 📂 URL Encode String
🏷️ 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