如何使用urllib编码url而不将“:”替换为“%3A”?

时间:2019-07-08 13:38:34

标签: python-3.x urllib2 urlencode

我需要传递一些字符串作为REST api的参数。 我正在使用httplib2请求API和urllib对参数进行编码。

我有这样的时间戳记,其格式为:

('%Y-%m-%dT%H:%M:%S')/2019-07-08T13:20:23

我在下面这样做:

values={'identifier' : identifier,
        'timestamp': timestamp,
        'signature-version': signature_version,
        'signature-method':signature_method,
         'signature': signature}

现在执行urlencode会将“:”删除为“%3A”。

data = urllib.parse.urlencode(values)

这让我回想起

timestamp=2019-07-08T13%3A20%3A23#

库中有什么可以忽略这一点的吗? 非常感谢!

1 个答案:

答案 0 :(得分:1)

如果您使用urlencode,它将始终将':'转换为'%3A',因为这是URL解析它的唯一方法。与将空格字符传递为'%20'相同。 '%3A'字符不会妨碍代码的功能。