解析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一些简单的取消引用的查询,你只需要反转这个过程。

from urllib.parse import quote
urlsafequery = quote(urlquery)

相关内容

  • 没有找到相关文章

最新更新