我使用的是Python的BaseHTTPRequestHandler
。当我实现do_GET方法时,我发现自己需要手动解析self.path
self.path
看起来像这样:
/?parameter=value&other=some
我应该如何解析它才能得到像这样的字典
{'parameter': 'value', 'other':'some'}
谢谢,
发布于 2010-09-25 00:15:39
使用urlparse
模块中的parse_qs
,但确保删除"/?":
from urlparse import parse_qs
s = "/?parameter=value&other=some"
print parse_qs(s[2:]) # prints {'other': ['some'], 'parameter': ['value']}
请注意,每个参数可以有多个值,因此返回的dict将每个参数名称映射到一个值列表。
发布于 2011-10-13 00:34:58
考虑到self.path可能是分层的,您可能应该执行以下操作:
import urlparse
o = urlparse.urlparse(self.path)
urlparse.parse_qs(o.query)
发布于 2016-09-26 23:30:00
以防有人在Python3上需要它:
import urllib.parse
s = "/?parameter=value&other=some"
print(urllib.parse.parse_qs(s[2:]))
>>> {'other': ['some'], 'parameter': ['value']}
在Python3中将urlparse
重命名为urllib.parse
。
https://stackoverflow.com/questions/3788897
复制相似问题