You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3解析URL参数时如何保留+号?+号转空格问题解析

URL查询参数解析时+号被转为空格的原因及保留方法

原因

在URL查询参数的编码规范里,+号被约定为空格的替代表示——这是早期HTML表单提交的传统规则:表单会把空格编码成+号(而非%20)。Python的urllib.parse.parse_qsl方法默认遵循这个规则,所以会自动将查询参数中的+号转换成空格。

保留原始+号的方法

可以通过修改parse_qsl的参数禁止该转换行为:该方法提供了plus参数,默认值为True(开启+号转空格),将其设为False即可保留原始的+号。

修改后的代码示例:

from urllib.parse import urlparse, parse_qsl

if __name__ == '__main__':
    parsed_url = urlparse("http://a.com?q=a+b")
    # 设置plus=False,禁用+号转空格的规则
    query_params = dict(parse_qsl(parsed_url.query, plus=False))
    print(query_params.get('q'))  # 输出结果为: a+b

设置plus=False后,parse_qsl只会解码%xx格式的URL编码字符,不再处理+号,就能得到原始的参数内容。

内容的提问来源于stack exchange,提问作者Dolphin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:24:53