我试图在提交之前urlencode这个字符串。

queryString = 'eventName=' + evt.fields["eventName"] + '&' + 'eventDescription=' + evt.fields["eventDescription"]; 

当前回答

试试这个:

urllib.pathname2url(stringToURLEncode)

Urlencode不能工作,因为它只对字典有效。Quote_plus没有产生正确的输出。

其他回答

尝试请求而不是urllib,你不需要打扰urlencode!

import requests
requests.get('http://youraddress.com', params=evt.fields)

编辑:

如果你需要有序的名称-值对或多个名称值,那么设置参数如下:

params=[('name1','value11'), ('name1','value12'), ('name2','value21'), ...]

而不是用字典。

注意urllib。Urlencode并不总是能做到这一点。问题在于,有些服务关心参数的顺序,而在创建字典时,这些顺序就会丢失。对于这种情况,使用urllib。正如Ricky建议的那样,quote_plus更好。

试试这个:

urllib.pathname2url(stringToURLEncode)

Urlencode不能工作,因为它只对字典有效。Quote_plus没有产生正确的输出。

Python 3:

urllib parse。引用+(字符串,安全= ",编码= no, errors= no)

在Python 3中,这对我来说很有效

import urllib

urllib.parse.quote(query)