unquote parse python urlencode

parse - urlencode python



¿Cómo codificar la URL en Python 3? (3)

He intentado seguir la documentación pero no pude usar urlparse.parse.quote_plus() en Python 3 :

from urllib.parse import urlparse params = urlparse.parse.quote_plus({''username'': ''administrator'', ''password'': ''xyz''})

yo obtengo

AttributeError: el objeto ''function'' no tiene atributo ''parse''


Has leído mal la documentación. Necesitas hacer dos cosas:

  1. Cita cada clave y valor de tu diccionario, y
  2. Codificarlos en una URL

Afortunadamente urllib.parse.urlencode hace ambas cosas en un solo paso, y esa es la función que debería estar usando.

from urllib.parse import urlencode, quote_plus payload = {''username'':''administrator'', ''password'':''xyz''} result = urlencode(payload, quote_via=quote_plus) # ''password=xyz&username=administrator''


Para Python 3, puedes usar cotización en lugar de quote_plus

import urllib.parse

print urllib.parse.quote("http://www.sample.com/")

Resultado:

http%3A%2F%2Fwww.sample.com%2F

O

from requests.utils import requote_uri requote_uri("http://www.sample.com/?id=123 abc")

Resultado:

''https://www.sample.com/?id=123%20abc''


Usted está buscando urllib.parse.urlencode

import urllib.parse params = {''username'': ''administrator'', ''password'': ''xyz''} encoded = urllib.parse.urlencode(params) # Returns: ''username=administrator&password=xyz''