Создать строку запроса без кодировки - PullRequest
0 голосов
/ 13 декабря 2018

Я хочу создать строку запроса, но без кодирования специального символа, например @, ! или ?.

Вот мой код:

payload = {"key": "value", "key2": "value2",
           "email": "test@hello3.ch", "password": "myPassword54321!?"}
print(urllib.parse.urlencode(payload))  

Теперь я получаю в качестве вывода:

password = myPassword54321% 21% 3F & email = test% 40hello3.ch

Как сделать так, чтобы мой вывод выглядел следующим образом:

password=myPassword54321!?&email=test@hello3.ch

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Если вы не хотите использовать функции кодирования urlencode, вы также можете не использовать его, так как он больше ничего не делает.Если вы просто хотите напечатать пары ключ-значение, разделенные символом &, и каждая из которых соединена символом =, это просто, используя str.join и str.format:

print("&".join("{}={}".format(key, value) for key, value in payload.items()))
0 голосов
/ 13 декабря 2018

urllib.parse.unquote заменит экранированные символы %xx на символы, которые они представляют

from urllib.parse import urlencode, unquote

print(unquote(urlencode(payload)))
# key=value&key2=value2&email=test@hello3.ch&password=myPassword54321!?
...