我有:
url = 'http://example.com/json?key=12345&lat=52.370216&lon=4.895168&status=upcoming&radius=20&offset=0'
如何解析20
参数的值radius
?
我认为这是不可能的urlparse.parse_qs()
,不是吗?还有比使用正则表达式更好的方法吗?
我有:
url = 'http://example.com/json?key=12345&lat=52.370216&lon=4.895168&status=upcoming&radius=20&offset=0'
如何解析20
参数的值radius
?
我认为这是不可能的urlparse.parse_qs()
,不是吗?还有比使用正则表达式更好的方法吗?
是的,使用parse_qs():
解析作为字符串参数给出的查询字符串(application/x-www-form-urlencoded 类型的数据)。数据作为字典返回。字典键是唯一的查询变量名称,值是每个名称的值列表。
>>> from urlparse import parse_qs
>>> url = 'http://example.com/json?key=12345&lat=52.370216&lon=4.895168&status=upcoming&radius=20&offset=0'
>>> parse_qs(url)['radius'][0]
'20'
UPD:正如@DanielRoseman 指出的(见评论),你应该首先通过 urlparse 传递 url:
>>> from urlparse import parse_qs, urlparse
>>> parse_qs(urlparse(url).query)['radius'][0]
'20'