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:
- Cita cada clave y valor de tu diccionario, y
- 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''