В настоящее время, когда мне нужно разобрать строку запроса, я изначально делалClean синтаксический разбор запроса URL
from urllib import parse
path = parse.urlparse(self.path)
query = parse.parse_qs(path.query)
value = query[name][0]
Но я не люблю [0]
S пунктир вокруг моего кода - он чувствовал неправильно в некоторые трудно точно определить путь, так что я понял, что я мог сделать
from urllib import parse
path = parse.urlparse(self.path)
query = dict(parse.parse_qsl(path.query))
value = query[name]
это имеет то преимущество, что удаление [0]
«с, но он рискует отбрасывая несколько значений (которые должны быть хорошо для моего приложения, которое не должно быть получение мульти все равно).
Есть ли более чистый способ анализа строк с urlencoded, который дает вам dict
минимальных значений: значение, если есть только одно значение или список, если их несколько?
Функция для этого не должна быть слишком сложной, но мне любопытно, есть ли библиотека, которая делает это, поэтому мне не нужно изобретать велосипед.
'parse.parse_qs' возвращает dict, [' parse.parse_qsl' возвращает список пар '(ключ, значение)'. (Https://docs.python.org/3/library/urllib.parse .html # urllib.parse.parse_qsl) – RoadieRich
А, я пропустил '' l'', в конце не было опечатки. Будет редактировать. –