假设这是我的URL字符串:
https://stackexchange.com/oauth/login_success/#access_token=xxxxxx))&过期=86400
我只想解析访问令牌部分"xxxxxx)"
这就是我迄今为止所做的:
from urllib.parse import urlparse
strr = "https://stackexchange.com/oauth/login_success/#access_token=xxxxxx))&expires=86400"
o = urlparse(strr)
print(o.fragment)
我得到的输出是:
access_token=xxxxxx))&过期=86400
从这里得到"xxxxxx))"部分的最佳方式是什么?使用正则表达式?
这里有一种方法-首先使用urlparse()
,然后在fragment
:上调用parse_qs()
>>> from urllib.parse import parse_qs, urlparse
>>>
>>> strr = "https://stackexchange.com/oauth/login_success/#access_token=xxxxxx))&expires=86400"
>>> o = parse_qs(urlparse(strr).fragment)
>>> print(o['access_token'])
['xxxxxx))']
您可以使用正则表达式:
(?<=access_token=)[^)]*