Gibt es eine Möglichkeit, eine URL (mit einer Python-Bibliothek) zu analysieren und ein Python-Wörterbuch mit den Schlüsseln und Werten eines Abfrageparameterteils der URL zurückzugeben?
Beispielsweise:
url = "http://www.example.org/default.html?ct=32&op=92&item=98"
erwartete Rückkehr:
{'ct':32, 'op':92, 'item':98}
python
parsing
url
query-parameters
Leonardo Andrade
quelle
quelle
urllib.parse_qs
auch Listen für die Werte zurück. Ich erwähne dies in meiner Antwort ausdrücklich. Übrigens möchten Sie möglicherweiseurllib.parse_qsl()
stattdessen verwenden und die resultierende Liste hinter sich lassen,dict()
wenn Sie nur einzelne Werte möchten.parse_qls
, dass bei der Konvertierung in ein Diktat der letzte Wert anstelle des ersten beibehalten wird , da eine Liste von Tupeln zurückgegeben wird . Dies setzt natürlich voraus, dass es zunächst mehrere Werte gab.Wenn Sie keinen Parser verwenden möchten:
Ich werde also nicht löschen, was oben steht, aber es ist definitiv nicht das, was Sie verwenden sollten.
Ich glaube, ich habe einige der Antworten gelesen und sie sahen etwas kompliziert aus, falls Sie wie ich sind, verwenden Sie meine Lösung nicht.
Benutze das:
und für Python 2.X.
Ich weiß, dass dies die gleiche Antwort ist wie die akzeptierte Antwort, nur in einem Einzeiler, der kopiert werden kann.
quelle
+
) verarbeiten, und dieurllib.parse
Fehler werden bei Bedarf entweder für Sie ausgelöst oder ignoriert. Ich bin mir nicht sicher, warum Sie dieses Rad neu erfinden möchten, wenn es Teil der Standardbibliothek ist.Für Python 2.7
quelle
Ich bin damit einverstanden, das Rad nicht neu zu erfinden, aber manchmal (während Sie lernen) hilft es, ein Rad zu bauen, um ein Rad zu verstehen. :) Aus rein akademischer Sicht biete ich dies mit dem Vorbehalt an, dass bei Verwendung eines Wörterbuchs davon ausgegangen wird, dass Name-Wert-Paare eindeutig sind (dass die Abfragezeichenfolge nicht mehrere Datensätze enthält).
Ich verwende Version 3.6.5 in der Idle IDE.
quelle
Denn
python2.7
ich benutzeurlparse
Modul, um URL-Abfragen zu analysieren, um zu diktieren.quelle