Reputation: 571
What is the equivalent of urllib.parse.quote
It's urllib.urlencode()
?
Thanks
Upvotes: 16
Views: 36879
Reputation: 4306
actually using the library six
, which is made for python2/python3 compatibility you can do
import six.moves.urllib as urllib
# and now you can use urllib as it was python3
urllib.quote(...)
and if you just want python2, it was actually urllib.quote
directly
Upvotes: 17
Reputation: 15537
I think you are looking for urllib.pathname2url. Compare:
Python 3, urllib.parse.quote:
>>> urllib.parse.quote('abc def/foo?bar=baz')
'abc%20def/foo%3Fbar%3Dbaz'
Python 2, urllib.pathname2url:
>>> urllib.pathname2url('abc def/foo?bar=baz')
'abc%20def/foo%3Fbar%3Dbaz'
The behavior seems similar to me, but they might be subtly different.
Edit:
Reading your comment on Algina's post, I think this is my preferred way to build the url:
>>> url = 'http://dev.echonest.com/api/v4/song/search'
>>> params = {'api_key': 'xxxx', 'format': 'json', 'artist': 'Galaxie 500'}
>>> "{}?{}".format(url, urllib.urlencode(params))
'http://dev.echonest.com/api/v4/song/search?api_key=xxxx&artist=Galaxie+500&format=json'
Upvotes: 18
Reputation: 2390
Can you be more specific?
you have
urllib.parse.quote_plus(...)
urllib.parse.quote_from_bytes(...)
urllib.parse.unquote(...)
like you mentioned
see doc here: https://docs.python.org/3.2/library/urllib.parse.html
Upvotes: 0