python 2.7中的等效urllib.parse.quote()

时间:2016-02-02 09:45:46

标签: python python-2.7 python-3.x

等同于urllib.parse.quote

它是urllib.urlencode()

由于

3 个答案:

答案 0 :(得分:10)

实际上使用库six,这是为了兼容python2 / python3而做的

import six.moves.urllib as urllib 

# and now you can use urllib as it was python3
urllib.quote(...) 

如果你只是想要python2,它实际上是直接urllib.quote

答案 1 :(得分:9)

我认为您正在寻找urllib.pathname2url。比较:

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'

这种行为与我类似,但它们可能略有不同。

修改

阅读你对Algina帖子的评论,我认为这是我建立网址的首选方式:

>>> 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'

答案 2 :(得分:0)

你能更具体一点吗? 你有 urllib.parse.quote_plus(...) urllib.parse.quote_from_bytes(...) urllib.parse.unquote(...) 就像你提到的那样

在这里看到doc: https://docs.python.org/3.2/library/urllib.parse.html