2

如何从 URL 获取 URL 参数列表?例如:http://example.com/blank.html?access_token=blablabla&expires_in=0&user_id=ablabl&secret=rararar

我需要得到access_token, expires_in, user_id, secret.

4

1 回答 1

1

使用urlparse.parse_qs()orurlparse.parse_qsl()解析查询字符串:

from urlparse import parse_qs, parse_qsl, urlparse

query_string = urlparse(url).query
if query_string:
    data_as_dict = parse_qs(query_string)  # returns a dictionary with lists
    data_as_list = parse_qsl(query_string) # returns a list of tuples

演示:

>>> from urlparse import parse_qs, parse_qsl
>>> url = 'http://example.com/blank.html?access_token=blablabla&expires_in=0&user_id=ablabl&secret=rararar'
>>> query_string = url.partition('?')[2]
>>> parse_qs(query_string)
{'access_token': ['blablabla'], 'user_id': ['ablabl'], 'secret': ['rararar'], 'expires_in': ['0']}
>>> parse_qsl(query_string)
[('access_token', 'blablabla'), ('expires_in', '0'), ('user_id', 'ablabl'), ('secret', 'rararar')]

因为查询字符串中的任何键都可以出现多次,所以每个键最终可能有多个值。该parse_qs()函数将所有值收集到每个键的列表中,该parse_qsl()函数只是将每个键值对作为元组返回,让您决定如何处理重复项。

于 2013-07-29T15:49:43.613 回答