← retour aux snippets

urllib.parse: urlsplit, urlunsplit et parse_qs

Analyser/modifier les composants d'une URL et lire la query.

python url #urlsplit

objectif

Analyser/modifier les composants d’une URL et lire la query.

code minimal

from urllib.parse import urlsplit, urlunsplit, parse_qs
parts = urlsplit("https://ex.com/path?p=1&q=a&q=b")
qs = parse_qs(parts.query)
rebuilt = urlunsplit((parts.scheme, parts.netloc, parts.path, parts.query, parts.fragment))
print(qs["q"] == ["a","b"] and rebuilt.startswith("https://"))  # attendu: True

utilisation

from urllib.parse import urlsplit
p = urlsplit("https://ex.com/a/b#frag")
print(p.fragment == "frag")

variante(s) utile(s)

from urllib.parse import parse_qsl
print(dict(parse_qsl("a=1&a=2"))["a"] == "2")

notes

  • parse_qs retourne des listes, parse_qsl des paires (dernière valeur gagnante).
  • urlsplit/urlunsplit évitent des reconstructions manuelles fragiles.