[text] implement 'parse_query()' without using 'urllib.parse.parse_qsl'
doesn't support bytes anymore, but is twice as fast
This commit is contained in:
@@ -239,11 +239,17 @@ def parse_float(value, default=0.0):
|
|||||||
|
|
||||||
def parse_query(qs):
|
def parse_query(qs):
|
||||||
"""Parse a query string into key-value pairs"""
|
"""Parse a query string into key-value pairs"""
|
||||||
|
if not qs:
|
||||||
|
return {}
|
||||||
|
|
||||||
result = {}
|
result = {}
|
||||||
try:
|
try:
|
||||||
for key, value in urllib.parse.parse_qsl(qs):
|
for name_value in qs.split("&"):
|
||||||
if key not in result:
|
name, eq, value = name_value.partition("=")
|
||||||
result[key] = value
|
if eq:
|
||||||
|
name = unquote(name.replace("+", " "))
|
||||||
|
if name not in result:
|
||||||
|
result[name] = unquote(value.replace("+", " "))
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
return result
|
return result
|
||||||
|
|||||||
Reference in New Issue
Block a user