Seite 1 von 1
uri parsen
Verfasst: Samstag 11. August 2007, 04:44
von Volvic
hallo,
ich möchte folgende uri parsen:
nun mit RegEx ist das zwar machbar, jedoch habe ich damit noch viele probleme. gibt es dafür nichts fertiges, z.b. beim urlparse modul ist was von parametern beschrieben worden?
Verfasst: Samstag 11. August 2007, 04:57
von veers
Wie möchtest du die URL denn geparst haben? Willst du den Querystring geparst haben? Oder willst du Protokol, Domain, Pfad und Query?
Verfasst: Samstag 11. August 2007, 06:23
von Volvic
momentan benötige ich nur den query teil. soweit war ich mit urlparse allerdings auch schon:
also beim ersten ? wird es entfernt, soweit okay, nur wollte ich eben die query angaben später in einem dict speichern zum weiterverarbeiten des requests also aus:
soll das werden:
Code: Alles auswählen
query_vars = {
'file' : 'test.tar.gz',
'sid' : '14789632'
}
Verfasst: Samstag 11. August 2007, 07:18
von Y0Gi
Frei aus dem Kopf tippe ich darauf, dass ``cgi.parse_qs`` deine Anforderung erfüllt.
Verfasst: Samstag 11. August 2007, 07:29
von EnTeQuAk
Ungetestet, aber so wird es angewendet:
Code: Alles auswählen
query_vars = []
for key, values in cgi.parse_qs(query_string, True).iteritems():
for value in values:
value = value.decode('utf-8', 'ignore')
query_vars.append(key, value)
Und schon hast du den Query in einer Dictionary ähnlichen Struktur.
Beachte, das ``value.decode`` irgentwie anders mit dem Charset umgeht bzw. Konfigurierbar ist.
Für einen besseren Zugriff könnte sich noch eine Art "MultiDict" erweisen. Ein Beispiel, legt Werkzeug mal vor:
http://trac.pocoo.org/browser/werkzeug/ ... ils.py#L24
Ansonsten hängt das natürlich klar vom Anwendungsgebiet ab.
MfG EnTeQuAk
Verfasst: Samstag 11. August 2007, 08:51
von Volvic
perfekt danke, dann kann ich meine regex weglassen