需要在python中解析类似GET请求的内容

时间:2014-02-26 15:47:51

标签: python string get split delimiter

我有一个需要解析的GET请求类型字符串,使用python。

blahdeblahdeblah?query=This is the query&time=8:30

有没有人知道提取我想要的字符串的方法,这样我可以做类似

的事情
query= This is the query
time= 8:30

请记住,我的一些字符串可能没有时间。所以例如

blahdeblahdeblah?query=This is a query without a time

我也需要处理。我怎么能这样做?我不确定像splitstring这样的东西会对此有用,因为可以选择是否有一些变量。

2 个答案:

答案 0 :(得分:5)

使用urlparse.urlparse()("将URL解析为六个组件,返回一个6元组。这对应于URL的一般结构:scheme:// netloc / path;参数?query#fragment 。")和urlparse.parse_qs()("解析作为字符串参数给出的查询字符串(application / x-www-form-urlencoded类型的数据)。数据作为字典返回。字典keys是唯一的查询变量名称,值是每个名称的值列表。")

>>> from urlparse import urlparse
>>> from urlparse import parse_qs
>>> urlparse('http//www.domain.com/path?a=1&b=2')
ParseResult(scheme='http', netloc='www.domain.com', path='/path', params='', query='a=1&b=2', fragment='')
>>> parse_result = urlparse('//www.domain.com/path?a=1&b=2')
>>> parse_qs(parse_result[4])
{'a': ['1'], 'b': ['2']}

您的示例可能如下所示:

>>> for k,x in parse_qs(urlparse('blahdeblahdeblah?query=This is the query&time=8:30')[4]).items():
...     print '%s=%s' % (k, x)
...
query=['This is the query']
time=['8:30']

请参阅urlparseparse_qs

的Python文档

答案 1 :(得分:0)

import re
val = 'blahdeblahdeblah?query=This is the query&time=8:30'
val = re.sub('.time=\d{1,3}\D\d{1,3}', '', val)

print val