How to stop Python parse_qs from parsing single values into lists?
python, python-2.6
Solution
You could fix it afterwards...
import urlparse
qsdata = "test=test&test2=test2&test2=test3"
qs = dict( (k, v if len(v)>1 else v[0] )
for k, v in urlparse.parse_qs(qsdata).iteritems() )
print qs
However, I don't think I would want this. If a parameter that is normally a list happens to arrive with only one item set, then I would have a string instead of the list of strings I normally receive.
Problem
In python 2.6, the following code: ``` import urlparse qsdata = "test=test&test2=test2&test2=test3" qs = urlparse.parse_qs(qsdata) print qs ``` Gives the following output: ``` {'test': ['test'], 'test2': ['test2', 'test3']} ``` Which means that even though there is only one value for test, it is still being parsed into a list. Is there a way to ensure that if there's only one value, it is not parsed into a list, so that the result would look like this? ``` {'test': 'test', 'test2': ['test2', 'test3']} ```