python querystring怎么用?python解析url查询参数

在 Python 中处理 Query String(查询字符串)通常涉及从 URL 中提取参数,或者将字典转换为查询字符串,以下是几种常见的方法:

从 URL 中提取查询参数

使用 urllib.parse(推荐)

from urllib.parse import urlparse, parse_qs, parse_qsl
url = "https://example.com/search?name=John&age=30&city=Beijing&city=Shanghai"
# 解析 URL
parsed_url = urlparse(url)
query_string = parsed_url.query
# 方法 1: parse_qs - 返回字典,值为列表(因为一个键可能有多个值)
params = parse_qs(query_string)
print(params)
# {'name': ['John'], 'age': ['30'], 'city': ['Beijing', 'Shanghai']}
# 方法 2: parse_qsl - 返回键值对列表
params_list = parse_qsl(query_string)
print(params_list)
# [('name', 'John'), ('age', '30'), ('city', 'Beijing'), ('city', 'Shanghai')]
# 获取单个值
name = params['name'][0]  # 'John'
age = params.get('age', [''])[0]  # '30'

使用 requests 库(处理请求参数)

import requests
# 发送请求时自动处理查询字符串
response = requests.get("https://api.example.com/users", params={"name": "John", "age": 30})
print(response.url)
# https://api.example.com/users?name=John&age=30

将字典转换为查询字符串

使用 urllib.parse.urlencode

from urllib.parse import urlencode
params = {
    "name": "John",
    "age": 30,
    "city": "Beijing"
}
query_string = urlencode(params)
print(query_string)
# name=John&age=30&city=Beijing
# 如果需要包含在 URL 中
from urllib.parse import urlunparse, urlparse
base_url = "https://example.com/search"
parsed = urlparse(base_url)
new_url = parsed._replace(query=query_string).geturl()
print(new_url)
# https://example.com/search?name=John&age=30&city=Beijing

使用 requests

import requests
params = {"name": "John", "age": 30}
response = requests.get("https://api.example.com/users", params=params)
print(response.url)
# https://api.example.com/users?name=John&age=30

在 Web 框架中使用

Flask

from flask import Flask, request
app = Flask(__name__)
@app.route('/search')
def search():
    # 获取查询参数
    name = request.args.get('name')
    age = request.args.get('age', type=int)  # 自动转换为整数
    # 获取所有查询参数
    all_params = request.args.to_dict()
    return f"Name: {name}, Age: {age}"

Django

from django.http import HttpResponse
def search_view(request):
    # 获取查询参数
    name = request.GET.get('name')
    age = request.GET.get('age', type=int)
    # 获取所有查询参数
    all_params = request.GET
    return HttpResponse(f"Name: {name}, Age: {age}")

常见注意事项

处理特殊字符

from urllib.parse import quote, unquote
# URL 编码
encoded = quote("Hello World")
print(encoded)  # Hello%20World
# URL 解码
decoded = unquote("Hello%20World")
print(decoded)  # Hello World

处理多个同名参数

from urllib.parse import parse_qs
url = "https://example.com/search?tag=python&tag=javascript&tag=web"
params = parse_qs(url.split('?')[1])
print(params)
# {'tag': ['python', 'javascript', 'web']}
# 获取所有值
tags = params['tag']
print(tags)  # ['python', 'javascript', 'web']
# 获取第一个值
first_tag = params['tag'][0]
print(first_tag)  # 'python'
场景 推荐方法
解析 URL 查询参数 urllib.parse.parse_qs()
构建查询字符串 urllib.parse.urlencode()
发送 HTTP 请求 requests.get(url, params=dict)
Web 框架中获取参数 Flask: request.args, Django: request.GET

这些方法涵盖了大多数处理 Query String 的场景,根据你的具体需求选择合适的方法即可。

(URL解析)Python如何实现URL解析?快来学习urllib标准库!
加载中
(URL解析)Python如何实现URL解析?快来学习urllib标准库!

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/483673.html

(0)
上一篇 2026年7月11日 22:45
下一篇 2026年7月11日 22:46

相关推荐

  • 服务器开不开机怎么回事?服务器无法开机的解决方法

    服务器无法开机通常由电源供应故障、硬件接触不良或关键组件损坏引起,排查应遵循“由外向内、由软到硬”的原则,重点检查供电环境与硬件状态,大部分非物理损坏故障可通过重新插拔部件或重置CMOS解决, 电源与外部环境基础排查当发现服务器无法启动时,首要任务是排除外部供电问题,这是最基础也是最容易被忽视的环节,检查电源线……

    2026年3月28日
    12900
  • 碧蓝航线b服和日服有哪些服务器,哪个服务器好?

    碧蓝航线b服(B站渠道服)与日服是两套完全独立的服务器体系,b服没有独立的“日服务器”,玩家通常通过官方日服客户端或特定渠道接入日区服务器,但b服账号数据与日服不互通,碧蓝航线b服与日服:一套体系,两种路径很多玩家在入坑时都会纠结“b服”和“日服”的关系,尤其是“b服有没有日服务器”这个问题,在各大社区被反复提……

    2026年8月10日
    700
  • 服务器操作系统可以备份吗,如何进行系统备份

    服务器操作系统不仅可以备份,而且是企业灾备体系中的核心环节,对于任何依赖IT架构运转的业务而言,仅仅备份数据文件是远远不够的,操作系统级别的备份能够确保在遭遇灾难时,实现快速的业务恢复和系统重建,针对“服务器操作系统可以备份吗”这一核心问题,明确的答案是:完全可以,且必须进行备份,通过系统级备份,管理员可以将整……

    2026年2月26日
    12200
  • 个人买个云服务器怎么选?个人云服务器推荐

    个人购买云服务器并非为了替代本地电脑,而是为了构建一个7×24小时在线、可远程访问且具备独立IP的“数字资产”,对于大多数个人开发者或技术爱好者而言,选择轻量级应用服务器是性价比最高的起步方案,在2026年的技术环境下,云计算的门槛已大幅降低,个人用户不再需要精通复杂的网络架构,只需关注核心需求,很多新手容易陷……

    2026年6月21日
    1700
  • 服务器小时计费怎么算?服务器按小时计费费用计算方法

    高弹性、低成本、快迭代的云资源最优解在云原生与DevOps快速发展的今天,服务器小时计费已成为中小企业、初创团队及敏捷开发项目的主流计费模式,相比传统包年包月或固定带宽模式,它以“按需使用、按小时结算”为核心逻辑,显著降低IT基础设施的前期投入与资源闲置成本,同时支持秒级弹性伸缩,满足业务突发流量与灰度发布的严……

    2026年4月14日
    6500
  • Web网站服务器软件有哪些功能,哪个好?

    Web网站服务器软件的核心功能是接收并处理HTTP请求,向客户端返回网页内容,但现代服务器软件的功能远不止于此,它涵盖了连接管理、请求解析、静态资源服务、动态内容生成、安全防护、性能优化、日志记录等众多能力,是支撑网站稳定运行的基石,处理HTTP请求与响应服务器软件最基础的任务是听懂客户端发来的HTTP请求,并……

    2026年8月21日
    300
  • 高端移动网站开发怎么做?高端手机网站建设公司哪家好

    2026年高端移动网站开发的核心在于以E-E-A-T为底层逻辑,融合AI交互与极速性能,彻底告别模板化,打造具备商业转化力与品牌溢价的企业数字资产,2026高端移动网站开发的核心逻辑告别模板,重塑数字资产壁垒移动端不再是PC端的附属品,2026年,高端移动网站开发必须从“展示工具”升级为“业务增长引擎”,模板建……

    2026年4月28日
    7300
  • x86服务器有哪些配置,哪个品牌性价比高?

    【x86服务器有哪些6】全解析:从物理形态到业务场景的选型指南x86服务器根据物理形态、应用场景、CPU平台等维度,主要划分为塔式、机架式、刀片、高密度、GPU加速及存储优化六大类型,其中机架式服务器是企业数据中心部署最主流的选择,按物理形态划分的四大基础类型x86服务器最直观的区分维度是外观与安装方式,这直接……

    2026年8月20日
    900
  • 哪些域名服务器比较好用的,哪个最稳定可靠?

    选择域名服务器,核心看解析稳定性、安全防护、服务商资质和响应速度,简米科技与酷番云是经过市场验证的可靠选项,域名服务器好不好,先看这三个硬指标解析速度:用户感知的第一道关卡域名解析速度直接影响网站打开速度,据行业白皮书统计,多数用户在3秒内无响应就会离开,优秀域名服务器应具备全球BGP网络和多节点智能解析能力……

    2026年8月22日
    200
  • 个人服务器怎么配置才合理?服务器配置推荐清单

    个人服务器配置的核心在于根据具体应用场景(如NAS存储、家庭实验室或轻量级Web服务)在性能、功耗与噪音之间找到平衡,通常建议从二手企业级硬件或低功耗迷你主机入手,避免盲目追求顶级配置,搭建个人服务器并非单纯购买硬件,而是一场关于资源利用率的博弈,很多新手容易陷入“配置越高越好”的误区,导致电费高昂且噪音扰民……

    2026年5月29日
    4300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注