为什么urlib.parse.quote不将/转换为%2F



我想将经典URL'http://bla/ble/bli'转换为'http:%3A%2F%2Fbla%2Fble%2Fbli'

我尝试使用urllib库,但它只将:转换为%3A:

import urllib.parse
urllib.parse.quote('https://bla/ble:bli')
#https%3A//bla/ble%3Abli

我找不到将/转换为%2F的函数。

默认情况下,/被认为是安全的。将safe=''传递到quote

quote('https://bla/ble:bli', safe='')
# 'https%3A%2F%2Fbla%2Fble%3Abli'

根据docstring,这是因为常见用例希望保留/:

安全参数的默认值为"/"。字符是保留的,但在引用函数的典型用法是在将保留现有的斜杠字符。

最新更新