Czy istnieje sposób na przeanalizowanie adresu URL (za pomocą jakiejś biblioteki Pythona) i zwrócenie słownika Pythona z kluczami i wartościami części adresu URL zawierającej parametry zapytania?
Na przykład:
url = "http://www.example.org/default.html?ct=32&op=92&item=98"
spodziewany powrót:
{'ct':32, 'op':92, 'item':98}
python
parsing
url
query-parameters
Leonardo Andrade
źródło
źródło
urllib.parse_qs
również zwraca listy wartości. Wspominam o tym konkretnie w mojej odpowiedzi, przy okazji, możesz chcieć użyćurllib.parse_qsl()
zamiast wynikowej listy do,dict()
jeśli chcesz tylko pojedyncze wartości.parse_qls
to, że różnica polega na tym, że ponieważ zwraca listę krotek, konwersja tego na dyktę zachowa ostatnią wartość zamiast pierwszej . To oczywiście zakłada, że na początku było wiele wartości.Jeśli wolisz nie używać parsera:
Więc nie będę usuwał tego, co powyżej, ale zdecydowanie nie jest to, czego powinieneś używać.
Myślę, że przeczytałem kilka odpowiedzi i wyglądały na trochę skomplikowane, jeśli jesteś podobny do mnie, nie używaj mojego rozwiązania.
Użyj tego:
i dla Pythona 2.X
Wiem, że to to samo, co zaakceptowana odpowiedź, tylko w jednej linijce, którą można skopiować.
źródło
+
), aurllib.parse
także podnosi lub ignoruje błędy zgodnie z żądaniem. Nie jestem pewien, dlaczego chciałbyś wymyślić to koło na nowo, skoro jest częścią standardowej biblioteki.W przypadku Pythona 2.7
źródło
Zgadzam się, że nie trzeba wymyślać koła na nowo, ale czasami (podczas nauki) pomaga zbudować koło, aby zrozumieć koło. :) Tak więc, z czysto akademickiego punktu widzenia, proponuję to z zastrzeżeniem, że używanie słownika zakłada, że pary nazwa-wartość są unikalne (że ciąg zapytania nie zawiera wielu rekordów).
Używam wersji 3.6.5 w Idle IDE.
źródło
Ponieważ
python2.7
używamurlparse
modułu do analizowania zapytania URL do dyktowania.źródło