Existe uma maneira de analisar um URL (com alguma biblioteca Python) e retornar um dicionário Python com as chaves e valores de uma parte dos parâmetros de consulta do URL?
Por exemplo:
url = "http://www.example.org/default.html?ct=32&op=92&item=98"
retorno esperado:
{'ct':32, 'op':92, 'item':98}
python
parsing
url
query-parameters
Leonardo Andrade
fonte
fonte
urllib.parse_qs
também retorna listas para os valores. Mencionei isso especificamente em minha resposta, por falar nisso, você pode querer usar emurllib.parse_qsl()
vez disso e depois da lista resultante,dict()
se quiser apenas valores únicos.parse_qls
é que desde que ele retorna uma lista de tuplas, converter que para um dicionário irá manter o último valor em vez do primeiro . Isso, é claro, assume que havia vários valores para começar.Se você preferir não usar um analisador:
Portanto, não vou deletar o que está acima, mas definitivamente não é o que você deve usar.
Acho que li algumas das respostas e elas pareceram um pouco complicadas, caso você seja como eu, não use a minha solução.
Usa isto:
e para Python 2.X
Eu sei que esta é a mesma resposta aceita, apenas em uma linha que pode ser copiada.
fonte
+
), eurllib.parse
também levanta ou ignora erros para você, conforme solicitado. Não sei por que você deseja reinventar esta roda quando ela faz parte da biblioteca padrão.Para python 2.7
fonte
Eu concordo em não reinventar a roda, mas às vezes (enquanto você está aprendendo) ajuda construir uma roda para entendê-la. :) Então, de uma perspectiva puramente acadêmica, ofereço isso com a ressalva de que o uso de um dicionário assume que os pares nome-valor são únicos (que a string de consulta não contém vários registros).
Estou usando a versão 3.6.5 no Idle IDE.
fonte
Pois
python2.7
estou usando ourlparse
módulo para analisar a consulta de url para dict.fonte