Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:用百分号编码url?_Python - Fatal编程技术网

python:用百分号编码url?

python:用百分号编码url?,python,Python,我正在尝试转换以下url http://www.website.com/search/si/1/doctors/Vancouver, BC 到 我试过了 urllib.quote('http://www.website.com/search/si/1/doctors/Vancouver, BC', '') 结果用百分号代替了所有的东西 正确的方法是什么 urllib.quote('www.website.com/search/si/1/doctors/Vancouver, BC') 没有第

我正在尝试转换以下url

http://www.website.com/search/si/1/doctors/Vancouver, BC

我试过了

urllib.quote('http://www.website.com/search/si/1/doctors/Vancouver, BC', '')
结果用百分号代替了所有的东西

正确的方法是什么

urllib.quote('www.website.com/search/si/1/doctors/Vancouver, BC')
没有第二个参数和协议部分
http://
。第二个参数是不被替换的安全字符列表,默认值为
'/'
,这在您的情况下是正常的。

用于url
路径
保留所有其他内容:

from urllib import quote
from urlparse import urlparse, urlunparse

url = "http://www.website.com/search/si/1/doctors/Vancouver, BC"

scheme, netloc, path, params, query, fragment = urlparse(url)
path = quote(path)
print urlunparse((scheme, netloc, path, params, query, fragment))
印刷品:

http://www.website.com/search/si/1/doctors/Vancouver%2C%20BC
另见:


这给了我
http%3A//www.website.com/search/si/1/doctors/温哥华%2C%20BC
您应该使用路径部分而不使用协议部分。否则,它会认为您要获取的是。您可以使用将路径与URL分开。这对您很有用:
urllib.quote(URL,/:'])
omg…最后是一个真正的答案,而不是真正的答案:假设您在查询字符串中有一个
http://www.website.com/Vancouver:BC“@AlexanderGelbukh很好,现在呢?@alecxe现在完美了。我想知道这是否不能用一个函数来完成。@AlexanderGelbukh yup,
werkzeug
有助于避免在这里重新发明轮子,请参阅。
http://www.website.com/search/si/1/doctors/Vancouver%2C%20BC