1

我有:

url = 'http://example.com/json?key=12345&lat=52.370216&lon=4.895168&status=upcoming&radius=20&offset=0'

如何解析20参数的值radius

我认为这是不可能的urlparse.parse_qs(),不是吗?还有比使用正则表达式更好的方法吗?

4

1 回答 1

3

是的,使用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'
于 2013-09-04T11:16:43.683 回答