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

如何使用Python的urllib.parse.urlencode()生成无转义的URL参数?

如何用urllib.parse.urlencode()生成无转义的URL参数拼接字符串

直接使用urllib.parse.urlencode()无法实现完全不转义的需求——这个方法的核心设计就是对URL特殊字符进行编码。不过你可以通过两种方式达成只保留键值对拼接逻辑的目的:

方法一:手动拼接键值对

遍历字典的键值对,用=连接每个键值,再用&拼接所有项,最后可按需添加?前缀:

params = {'name': '张三&李四', 'age': 25, 'city': '北京上海'}
query_string = '&'.join([f"{k}={v}" for k, v in params.items()])
full_url = f"?{query_string}"
print(full_url)
# 输出:?name=张三&李四&age=25&city=北京上海

注意:如果键或值本身包含=或&,会导致参数解析混乱,这种场景需要你自行处理冲突。

方法二:修改urlencode的编码逻辑

利用urlencode的quote_via参数,传入一个不执行任何转义的自定义函数,复用它的拼接逻辑:

from urllib.parse import urlencode

def no_escape(s, safe='', encoding=None, errors=None):
    return s

params = {'name': '张三&李四', 'age': 25, 'city': '北京上海'}
query_string = urlencode(params, quote_via=no_escape)
full_url = f"?{query_string}"
print(full_url)
# 输出:?name=张三&李四&age=25&city=北京上海

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:20:41