首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何解析BaseHTTPRequestHandler.path

如何解析BaseHTTPRequestHandler.path
EN

Stack Overflow用户
提问于 2010-09-25 00:05:09
回答 5查看 23.5K关注 0票数 30

我使用的是Python的BaseHTTPRequestHandler。当我实现do_GET方法时,我发现自己需要手动解析self.path

self.path看起来像这样:

代码语言:javascript
复制
/?parameter=value&other=some

我应该如何解析它才能得到像这样的字典

代码语言:javascript
复制
{'parameter': 'value', 'other':'some'}

谢谢,

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-25 00:15:39

使用urlparse模块中的parse_qs,但确保删除"/?":

代码语言:javascript
复制
from urlparse import parse_qs
s = "/?parameter=value&other=some"
print parse_qs(s[2:]) # prints {'other': ['some'], 'parameter': ['value']}

请注意,每个参数可以有多个值,因此返回的dict将每个参数名称映射到一个值列表。

票数 26
EN

Stack Overflow用户

发布于 2011-10-13 00:34:58

考虑到self.path可能是分层的,您可能应该执行以下操作:

代码语言:javascript
复制
import urlparse
o = urlparse.urlparse(self.path)
urlparse.parse_qs(o.query)
票数 34
EN

Stack Overflow用户

发布于 2016-09-26 23:30:00

以防有人在Python3上需要它:

代码语言:javascript
复制
import urllib.parse
s = "/?parameter=value&other=some"
print(urllib.parse.parse_qs(s[2:]))
>>> {'other': ['some'], 'parameter': ['value']}

在Python3中将urlparse重命名为urllib.parse

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3788897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档