Pytanie Jak kodować URL w Pythonie 3?


Próbowałem podążać dokumentacja ale nie był w stanie użyć urlparse.parse.quote_plus() w Python 3:

from urllib.parse import urlparse

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

dostaję

AttributeError: obiekt 'function' nie ma atrybutu 'parsować'


14
2017-11-11 23:09


pochodzenie




Odpowiedzi:


Źle przeczytałeś dokumentację. Musisz zrobić dwie rzeczy:

  1. Cytuj każdy klucz i wartość ze swojego słownika, oraz
  2. Zakoduj je w adresie URL

na szczęście urllib.parse.urlencode robi obie te rzeczy w jednym kroku i jest to funkcja, z której powinieneś korzystać.

from urllib.parse import urlencode, quote_plus

payload = {'username':'administrator', 'password':'xyz'}
result = urlencode(payload, quote_via=quote_plus)
# 'password=xyz&username=administrator'

23
2017-11-11 23:20





Szukasz urllib.parse.urlencode

import urllib.parse

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

0
2018-04-25 12:41