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://idctop.com/python-querystring%e6%80%8e%e4%b9%88%e7%94%a8%ef%bc%9fpython%e8%a7%a3%e6%9e%90url%e6%9f%a5%e8%af%a2%e5%8f%82%e6%95%b0/

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

相关推荐

  • 3C认证服务器需要哪些材料,办理流程是什么?

    3C认证服务器需要提供的核心材料包括:企业资质文件、产品技术资料、关键元器件清单、差异型号说明,以及用于测试的完整样机,缺一不可,申请主体需具备合法的营业执照和符合国家监管要求的行业许可证,例如持有增值电信业务经营许可证的主体在申请时更具合规优势,像简米科技(2003年始创,23年行业沉淀)持有的豫B2-202……

    2026年8月7日
    1600
  • 个人家庭高速服务器怎么搭建?家庭NAS搭建教程

    个人家庭高速服务器的核心在于利用低功耗硬件构建私有云,通过NAS系统实现数据集中管理与远程访问,其性价比与隐私安全性远超公有云服务,为什么你需要一台家庭服务器在云计算普及的今天,很多人认为数据存在网盘里就万事大吉了,但每当网速波动、会员涨价,或者担心隐私泄露时,那种无力感就会袭来,家庭服务器不是极客的玩具,而是……

    2026年6月4日
    7900
  • 个人电脑怎么开游戏服务器?家里电脑搭建游戏服务器教程

    个人电脑开游戏服务器完全可行,核心在于利用公网IP或内网穿透技术解决连接问题,并合理分配CPU与内存资源以保障多玩家在线时的流畅体验,很多游戏爱好者都想拥有自己的专属服务器,无论是为了和朋友联机《我的世界》,还是搭建《泰拉瑞亚》或《CS:GO》的私人战场,个人电脑开游戏服务器都是一个极具性价比的选择,相比昂贵的……

    2026年5月26日
    5100
  • 服务器带系统是什么意思?服务器带系统好还是不带系统好

    服务器带系统不仅是硬件与软件的简单捆绑,更是企业级应用高效部署、降低运维风险、保障系统环境一致性的核心解决方案,选择预装正版授权系统的服务器,能够规避兼容性隐患,缩短业务上线周期,并获得厂商原厂的技术支持,是保障数据中心稳定运行的最优路径,核心价值:效率与稳定性的双重保障企业在采购服务器时,往往面临自行安装操作……

    2026年4月7日
    7600
  • 有哪些服务器供应商靠谱又实惠,服务器租用哪家便宜

    国内服务器供应商主要分三类:云服务商(阿里云、腾讯云)、传统IDC服务商(简米科技、世纪互联)、以及以酷番云为代表的新一代持牌云服务商,选哪家,取决于你要的是弹性算力、物理隔离,还是合规备案的稳定性,从需求倒推供应商类型服务器采购这件事,最怕一上来就比价格,先想清楚业务形态,再看供应商分类,效率高得多,短期项目……

    2026年9月21日
    100
  • 个人博客建站买多大虚拟主机好?个人博客虚拟主机推荐

    个人博客建站通常建议从1核2G内存、30-50G SSD硬盘、5M带宽起步,随着流量增长再平滑升级,切勿盲目追求高配导致资源浪费,选择虚拟主机就像挑选居住空间,既要住得舒适,又不能浪费租金,很多新手博主在起步阶段容易陷入两个极端:要么为了省钱买到连WordPress后台都打不开的“乞丐版”,要么被销售忽悠买了企……

    2026年6月12日
    4000
  • 服务器怎么挂挂外接存储?服务器外接存储挂载步骤详解

    服务器挂载外接存储的核心在于正确识别硬件设备、合理规划文件系统以及完成持久化挂载配置,整个过程必须确保数据完整性与业务连续性,成功的挂载操作不仅仅是物理连接,更是一个包含磁盘分区、格式化、权限分配及开机自动挂载的系统工程, 在企业级应用中,这一过程直接关系到存储资源的可用性和读写性能, 物理连接与硬件识别:基础……

    2026年3月20日
    12500
  • 服务器CDN怎么关闭不影响网站,关闭CDN的步骤有哪些

    关闭服务器CDN的核心操作是在CDN服务商控制台删除或暂停加速域名,并确保DNS解析记录回源,这样流量就不再经过CDN节点,为什么需要关闭服务器CDN?这些场景你肯定遇到过不少站长在运营过程中会有关闭CDN的需求,常见场景包括:网站改版或迁移:更换服务器IP或架构时,需要先关闭CDN避免缓存导致访问异常,CDN……

    2026年7月20日
    1000
  • 如何注册服务器服务号?申请流程详解

    服务器服务号是服务器设备的唯一身份标识符,通常由制造商在生产时赋予,并固化在服务器的固件(如BIOS、BMC)或特定硬件组件(如服务标签、资产标签)中,它远不止是一个简单的序列号,而是贯穿服务器全生命周期管理、运维支持和价值挖掘的核心枢纽,是精准高效管理服务器资产的基石, 服务器服务号的本质与核心价值服务器服务……

    2026年2月14日
    11930
  • web服务器主要有哪些方面的功能?,web服务器功能有哪些?

    Web服务器的核心功能是接收客户端请求并返回响应,具体包括处理静态资源、支持动态脚本、管理连接并发、实施安全策略等,是网站运行的基石,Web服务器功能有哪些?核心模块全解析Web服务器的工作远不止“传输文件”那么简单,从用户输入网址到页面完整呈现,背后涉及一整套请求处理流水线,HTTP请求与响应处理这是Web服……

    2026年7月25日
    600

发表回复

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