Message205911
Using an empty query argument with no = fails in urlparse.parse_qsl. Chrome and Firefox accept it without the =, so a navigation to google.com/search?q=foo&bar appears in the address bar as google.com/search?q=foo&bar=. Neither RFC 1738 nor RFC 3986 define the format of query strings. Wikipedia is similarly silent.
I can reproduce in 2.7.3 and 3.2.3, as shown below. I'm told this is also true of 3.3 but don't have easy access to a 3.3 interpreter to confirm.
The obvious workaround is to simply set strict_parsing=False, but I don't know what other checks that's disabling. Would it be reasonable to change parse_qsl to add the = if it's not present?
$ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urlparse
>>> query = 'foo&bar=baz'
>>> urlparse.parse_qs(query, strict_parsing=True, keep_blank_values=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/urlparse.py", line 353, in parse_qs
for name, value in parse_qsl(qs, keep_blank_values, strict_parsing):
File "/usr/lib/python2.7/urlparse.py", line 387, in parse_qsl
raise ValueError, "bad query field: %r" % (name_value,)
ValueError: bad query field: 'foo'
$ python3
Python 3.2.3 (default, Sep 25 2013, 18:22:43)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib.parse
>>> query = 'foo&bar=baz'
>>> urllib.parse.parse_qs(query, strict_parsing=True, keep_blank_values=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.2/urllib/parse.py", line 556, in parse_qs
encoding=encoding, errors=errors)
File "/usr/lib/python3.2/urllib/parse.py", line 596, in parse_qsl
raise ValueError("bad query field: %r" % (name_value,))
ValueError: bad query field: 'foo' |
|
Date |
User |
Action |
Args |
2013-12-11 18:11:45 | David.Pizzuto | set | recipients:
+ David.Pizzuto |
2013-12-11 18:11:45 | David.Pizzuto | set | messageid: <1386785505.13.0.692994563437.issue19951@psf.upfronthosting.co.za> |
2013-12-11 18:11:45 | David.Pizzuto | link | issue19951 messages |
2013-12-11 18:11:44 | David.Pizzuto | create | |
|