解析 URL 参数会更改 Python 中的值

问题描述

我正在尝试使用 urlparse 函数从 URL 获取参数,但是当我尝试对参数进行解码时,字符串发生了变化并出现错误。像这样:

    url = request.url
    parsed = urlparse.urlparse(url)
    log.info(parsed)
    url_code = urlparse.parse_qs(parsed.query)['id_compra']
    log.info(url_code)

输出看起来像这样

INFO     http://c34f30683db9.ngrok.io/payment?id_compra=%2FYkv86B1UdMds9CuYr%2FbMCD3BpKL%2FzElNtVRc8KiALXWgtB343EjrUsmTObrBzv48FshzRu%2FD3Www4B+5SAxcb2xx78=
INFO     ParseResult(scheme='http',netloc='c34f30683db9.ngrok.io',path='/payment',params='',query='id_compra=%2FYkv86B1UdMds9CuYr%2FbMCD3BpKL%2FzElNtVRc8KiALXWgtB343EjrUsmTObrBzv48FshzRu%2FD3Www4B+5SAxcb2xx78=',fragment='')
INFO     ['/Ykv86B1UdMds9CuYr/bMCD3BpKL/zElNtVRc8KiALXWgtB343EjrUsmTObrBzv48FshzRu/D3Www4B 5SAxcb2xx78=']

我想获取 URL 中的参数,但结果将字符“+”更改为空白,我不希望这种情况发生。

解决方法

您可能可以引用查询以返回 urlsafe 格式。 urlparse 对查询进行一些简单的取消引用,您只需要逆向该过程。

$('#id,#id2').removeClass('hidden')

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...