我试图在提交之前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 urllib3正常工作,您可以根据其官方文档使用以下方法:
import urllib3
http = urllib3.PoolManager()
response = http.request(
'GET',
'https://api.prylabs.net/eth/v1alpha1/beacon/attestations',
fields={ # here fields are the query params
'epoch': 1234,
'pageSize': pageSize
}
)
response = attestations.data.decode('UTF-8')
另一件可能还没有提到的事情是urllib.urlencode()将字典中的空值编码为字符串None,而不是将该形参作为不存在的参数。我不知道这是否是通常需要的,但不适合我的用例,因此我必须使用quote_plus。
在Python 3中,这对我来说很有效
import urllib
urllib.parse.quote(query)
如果urllib.parse. parse。urlencode()给你错误,然后尝试urllib3模块。
语法如下:
import urllib3
urllib3.request.urlencode({"user" : "john" })
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(...)