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

how to encode url with urllib without replacing ":" into "%3A"?

我需要将一些字符串作为参数传递给 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#

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

如果您使用 urlencode,它总是会将“:”转换为“%3A”,因为这是 url 解析它的唯一方式。它与将 space 字符作为“%20”传递是一样的。 “%3A”字符不会妨碍您的代码的功能。