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

新手上路,请多包涵

什么相当于 urllib.parse.quote

它是 urllib.urlencode()

谢谢

原文由 timothylhuillier 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 752
2 个回答

我认为您正在寻找 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 的首选方式:

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

原文由 André Laszlo 发布,翻译遵循 CC BY-SA 3.0 许可协议

实际上使用库 six ,它是为 python2/python3 兼容性而制作的,你可以这样做

import six.moves.urllib as urllib

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

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

原文由 allan.simon 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题