我试图在提交之前urlencode这个字符串。
queryString = 'eventName=' + evt.fields["eventName"] + '&' + 'eventDescription=' + evt.fields["eventDescription"];
我试图在提交之前urlencode这个字符串。
queryString = 'eventName=' + evt.fields["eventName"] + '&' + 'eventDescription=' + evt.fields["eventDescription"];
当前回答
import urllib.parse
query = 'Hellö Wörld@Python'
urllib.parse.quote(query) // returns Hell%C3%B6%20W%C3%B6rld%40Python
其他回答
Python 3:
urllib parse。引用+(字符串,安全= ",编码= no, errors= no)
尝试请求而不是urllib,你不需要打扰urlencode!
import requests
requests.get('http://youraddress.com', params=evt.fields)
编辑:
如果你需要有序的名称-值对或多个名称值,那么设置参数如下:
params=[('name1','value11'), ('name1','value12'), ('name2','value21'), ...]
而不是用字典。
Python 2
你要找的是urllib.quote_plus:
safe_string = urllib.quote_plus('string_of_characters_like_these:$#@=?%^Q^$')
#Value: 'string_of_characters_like_these%3A%24%23%40%3D%3F%25%5EQ%5E%24'
Python 3
在Python 3中,urllib包被分解成更小的组件。您将使用urllib.parse。Quote_plus(注意解析子模块)
import urllib.parse
safe_string = urllib.parse.quote_plus(...)
如果urllib.parse. parse。urlencode()给你错误,然后尝试urllib3模块。
语法如下:
import urllib3
urllib3.request.urlencode({"user" : "john" })
试试这个:
urllib.pathname2url(stringToURLEncode)
Urlencode不能工作,因为它只对字典有效。Quote_plus没有产生正确的输出。