¿Hay alguna forma de analizar una URL (con alguna biblioteca de Python) y devolver un diccionario de Python con las claves y los valores de los parámetros de consulta que forman parte de la URL?
Por ejemplo:
url = "http://www.example.org/default.html?ct=32&op=92&item=98"
rendimiento esperado:
{'ct':32, 'op':92, 'item':98}
python
parsing
url
query-parameters
Leonardo Andrade
fuente
fuente
urllib.parse_qs
también devuelve listas para los valores. Menciono esto específicamente en mi respuesta, por cierto, es posible que desee usarurllib.parse_qsl()
en su lugar y pegar la lista resultantedict()
si solo desea valores únicos.parse_qls
es que, dado que devuelve una lista de tuplas, convertir eso en un dict mantendrá el último valor en lugar del primero . Esto, por supuesto, supone que había varios valores para empezar.Si prefiere no utilizar un analizador:
Así que no eliminaré lo que está arriba, pero definitivamente no es lo que debería usar.
Creo que leí algunas de las respuestas y parecían un poco complicadas, en caso de que seas como yo, no uses mi solución.
Utilizar este:
y para Python 2.X
Sé que esto es lo mismo que la respuesta aceptada, solo en una línea que se puede copiar.
fuente
+
), yurllib.parse
también genera o ignora los errores según lo solicitado. No estoy seguro de por qué querrías reinventar esta rueda cuando es parte de la biblioteca estándar.Para Python 2.7
fuente
Estoy de acuerdo en no reinventar la rueda, pero a veces (mientras aprendes) ayuda construir una rueda para entender una rueda. :) Entonces, desde una perspectiva puramente académica, ofrezco esto con la advertencia de que el uso de un diccionario supone que los pares de nombre y valor son únicos (que la cadena de consulta no contiene varios registros).
Estoy usando la versión 3.6.5 en el IDE inactivo.
fuente
Porque
python2.7
estoy usando elurlparse
módulo para analizar la consulta de URL para dictar.fuente