Apakah ada cara untuk mengurai URL (dengan beberapa pustaka python) dan mengembalikan kamus python dengan kunci dan nilai dari bagian parameter kueri dari URL?
Sebagai contoh:
url = "http://www.example.org/default.html?ct=32&op=92&item=98"
hasil yang diharapkan:
{'ct':32, 'op':92, 'item':98}
python
parsing
url
query-parameters
Leonardo Andrade
sumber
sumber
urllib.parse_qs
juga mengembalikan daftar nilai. Saya secara khusus menyebutkan ini dalam jawaban saya, omong-omong, Anda mungkin ingin menggunakanurllib.parse_qsl()
sebagai gantinya dan melewati daftar yang dihasilkandict()
jika Anda hanya ingin nilai tunggal.parse_qls
adalah bahwa karena mengembalikan daftar tupel, mengkonversi yang untuk dict akan menjaga terakhir nilai bukan pertama . Ini tentu saja mengasumsikan ada banyak nilai untuk memulai.Jika Anda memilih untuk tidak menggunakan parser:
Jadi saya tidak akan menghapus apa yang ada di atas tapi jelas bukan itu yang harus Anda gunakan.
Saya pikir saya membaca beberapa jawaban dan mereka tampak sedikit rumit, jika Anda seperti saya, jangan gunakan solusi saya.
Gunakan ini:
dan untuk Python 2.X
Saya tahu ini sama dengan jawaban yang diterima, hanya dalam satu baris yang dapat disalin.
sumber
+
), danurllib.parse
juga memunculkan atau mengabaikan kesalahan untuk Anda seperti yang diminta. Saya tidak yakin mengapa Anda ingin menemukan kembali roda ini ketika itu adalah bagian dari pustaka standar.Untuk python 2.7
sumber
Saya setuju untuk tidak menemukan kembali roda tetapi kadang-kadang (saat Anda sedang belajar) membangun roda untuk memahami roda itu membantu. :) Jadi, dari perspektif akademis murni, saya menawarkan ini dengan peringatan bahwa menggunakan kamus mengasumsikan bahwa pasangan nilai nama adalah unik (bahwa string kueri tidak berisi banyak catatan).
Saya menggunakan versi 3.6.5 di Idle IDE.
sumber
Karena
python2.7
saya menggunakanurlparse
modul untuk mengurai kueri url menjadi dikt.sumber