采用
urllib.quote_plus(url, safe=':')
由于您不希望冒号进行编码,因此需要在调用时指定
urllib.quote():
>>> expected = 'https:%2F%2Fdl.dropbox.com%2Fu%2F94943007%2Ffile.kml'>>> url = 'https://dl.dropbox.com/u/94943007/file.kml'>>> urllib.quote(url, safe=':') == expectedTrue
urllib.quote()采用
safe默认为的关键字参数,
/并指示哪些字符被认为是安全的,因此不需要进行编码。在您的第一个示例中,使用
''导致对斜杠进行编码。您粘贴在未编码斜线以下的意外输出可能来自先前的尝试,其中您根本没有设置关键字参数
safe。
最终会产生所需结果的结果是覆盖默认值,
'/'而不是冒号
':'。
编辑 :此外,API要求将空格编码为加号。因此
urllib.quote_plus()应使用(其关键字参数
safe未默认为
'/')。



