webob.multidict -- multi-value dictionary object¶
multidict¶
Several parts of WebOb use a "multidict", which is a dictionary where a key can
have multiple values. The quintessential example is a query string like
?pref=red&pref=blue. The pref variable has two values, red and
blue.
In a multidict, when you do request.GET['pref'], you'll get back only
'blue' (the last value of pref). Sometimes returning a string and
other times returning a list is a cause of frequent exceptions. If you want
all the values back, use request.GET.getall('pref'). If you want to be
sure there is one and only one value, use request.GET.getone('pref'),
which will raise an exception if there is zero or more than one value for
pref.
When you use operations like request.GET.items(), you'll get back something
like [('pref', 'red'), ('pref', 'blue')]. All the key/value pairs will
show up. Similarly request.GET.keys() returns ['pref', 'pref'].
Multidict is a view on a list of tuples; all the keys are ordered, and all the
values are ordered.