Python的urlquote方法;“非标准”;部分url

Python的urlquote方法;“非标准”;部分url,python,Python,我有以下url,我有: https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr. Avila/1/9 我想编码它,使它看起来像一个正常的网址,但是有效的。例如: https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9 但是,如果我使用标准的urllib.quote,它会对所有内容进行编码: >>> urllib.quote('ht

我有以下url,我有:

https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr. Avila/1/9
我想编码它,使它看起来像一个正常的网址,但是有效的。例如:

https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9
但是,如果我使用标准的
urllib.quote
,它会对所有内容进行编码:

>>> urllib.quote('https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr. Avila/1/9')
'https%3A//www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9'

是否有一种python方法只对url的非标准部分进行编码,即不包括斜杠和冒号等?

例如Python2

In [45]: scheme, netloc, path, query, fragment = urllib2.urlparse.urlsplit(url)
In [60]: urllib2.urlparse.urlunsplit([scheme, netloc, urllib.quote(path), query, fragment])
Out[60]: 'https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9'

您需要“安全”参数:

如果您使用的是Python3,请使用
urllib.parse

import urllib.parse

x ='https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr. Avila/1/9'
urllib.parse.quote(x, safe = ':/')
输出:


但是我的url中没有查询字符串?
 'https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9'