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

如何使用Python处理Query String重复字段并保留原顺序去重

Python 实现查询字符串去重(保留最后出现值、维持原有顺序)

核心实现代码

from urllib.parse import parse_qsl, urlencode
# 低于Python3.7版本可额外导入OrderedDict保证顺序:
# from collections import OrderedDict

def deduplicate_query_string(input_qs: str) -> str:
    # 解析查询字符串为有序键值对列表,保留空值字段
    kv_pairs = parse_qsl(input_qs, keep_blank_values=True)
    # 遍历去重,同名字段保留最后一次出现的取值
    unique_params = {}
    # 低于Python3.7版本替换为:
    # unique_params = OrderedDict()
    for k, v in kv_pairs:
        unique_params[k] = v
    # 转回标准查询字符串格式
    return urlencode(unique_params)

# 示例测试
if __name__ == "__main__":
    input_qs = "username=peter&score=80&username=john"
    output_qs = deduplicate_query_string(input_qs)
    print(output_qs) # 输出:username=john&score=80

实现说明

  • 用标准库urllib.parse的内置方法解析查询字符串,无需手动处理特殊转义字符、空值等边界情况,兼容性更强
  • 利用字典赋值自动覆盖的特性,天然实现同名字段保留最后一次取值的需求
  • Python3.7及以上版本普通字典默认维持插入顺序,可保证字段相对顺序和原始输入一致;低版本替换为OrderedDict即可实现相同效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 04:54:03