Строковое кодирование с помощью urllib.urlencode
Для тела почтового запроса я пытаюсь включить:
data = [
('p1', 'true'),
('table', 'f3'),
('ids', '/'R000000020/'')
]
в
p1=true&table=f3&ids='R000000020'
с помощью
import urllib
payload = urllib.urlencode(data)
но я получаю
'p1=true&table=f3&ids=%27R000000020%27'
Как я могу заставить это работать правильно?
редактировать: я в конечном итоге с помощью:
data = [
('p1', 'true'),
('table', 'f3'),
('ids', "'"+'R000000020'+"'")
]
2 ответа
Urlencode будет кодировать '
в %27
, Если вы не хотите этого, вы можете присоединиться к data
вручную:
payload = '&'.join(['='.join(d) for d in data])
Или вы можете заменить %27
с '
:
payload = urllib.urlencode(data).replace("%27", "'")
Я знаю, это звучит глупо, но ты изменил свои данные ids
чтобы:
('ids', 'R000000020')