| :mod:`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. |
| |
| .. automodule:: webob.multidict |
| .. autoclass:: MultiDict |
| :members: |
| :inherited-members: |
| .. autoclass:: NestedMultiDict |
| :members: |
| .. autoclass:: NoVars |
| :members: |
| |