Use urlparse
, a standard library module designed for tasks like these!
urlparse.parse_qs(qs[, keep_blank_values[, strict_parsing]])
Parse a query string given as a string argument (data of type
application/x-www-form-urlencoded). Data are returned as a dictionary.
The dictionary keys are the unique query variable names and the values
are lists of values for each name.
The optional argument keep_blank_values is a flag indicating whether
blank values in percent-encoded queries should be treated as blank
strings. A true value indicates that blanks should be retained as
blank strings. The default false value indicates that blank values are
to be ignored and treated as if they were not included.
The optional argument strict_parsing is a flag indicating what to do
with parsing errors. If false (the default), errors are silently
ignored. If true, errors raise a ValueError exception.
Example:
>>> urlparse.parse_qs('a=1&b=1') # raw query string
{'a': ['1'], 'b': ['1']}
Note that you can parse an entire URL into its components (including a query string) using other functions in urlparse
as well.