如何在使用 Python Requests 库获得的结果中提取特定数据
How to extract specific data in results obtained from using Python Requests library
请看下面的代码:
@login_required
def dashboard(request):
code = request.GET.get('code', '')
payload = {
"client_id" : settings.GITHUB_CLIENT_ID,
"client_secret" : settings.GITHUB_CLIENT_SECRET,
"code" : code,
"state" : settings.STATE,
}
response = requests.post('https://github.com/login/oauth/access_token', params=payload)
# final_response = requests.get('https://api.github.com/user', auth=GitHubTokenAuth(access_token))
return HttpResponse(response)
# authenticated_user = final_response.json()
# return render(request, 'core/dashboard.html', {'authenticated_user':authenticated_user})
response
变量返回的值类似于:
access_token=eiwfbvdsvefieebrferferwfreferfersfwrb&scope=a%20list%20of%20scopes&token_type=bearer
如何访问 access_token
的值,以便我可以使用注释掉的 final_response
变量的值?
感谢期待!
可以使用urllib
的parse_qs
方法:
>>> from urllib.parse import parse_qs
>>> parse_qs(response.text)
{'access_token': ['eiwfbvdsvefieebrferferwfreferfersfwrb'], 'scope': ['a list of scopes'], 'token_type': ['bearer']}
请注意,您将获得每个密钥的 list
。要访问第一个元素,请使用以下语法:
>>> result = parse_qs(response.text)
>>> result['access_token'][0]
'eiwfbvdsvefieebrferferwfreferfersfwrb'
请看下面的代码:
@login_required
def dashboard(request):
code = request.GET.get('code', '')
payload = {
"client_id" : settings.GITHUB_CLIENT_ID,
"client_secret" : settings.GITHUB_CLIENT_SECRET,
"code" : code,
"state" : settings.STATE,
}
response = requests.post('https://github.com/login/oauth/access_token', params=payload)
# final_response = requests.get('https://api.github.com/user', auth=GitHubTokenAuth(access_token))
return HttpResponse(response)
# authenticated_user = final_response.json()
# return render(request, 'core/dashboard.html', {'authenticated_user':authenticated_user})
response
变量返回的值类似于:
access_token=eiwfbvdsvefieebrferferwfreferfersfwrb&scope=a%20list%20of%20scopes&token_type=bearer
如何访问 access_token
的值,以便我可以使用注释掉的 final_response
变量的值?
感谢期待!
可以使用urllib
的parse_qs
方法:
>>> from urllib.parse import parse_qs
>>> parse_qs(response.text)
{'access_token': ['eiwfbvdsvefieebrferferwfreferfersfwrb'], 'scope': ['a list of scopes'], 'token_type': ['bearer']}
请注意,您将获得每个密钥的 list
。要访问第一个元素,请使用以下语法:
>>> result = parse_qs(response.text)
>>> result['access_token'][0]
'eiwfbvdsvefieebrferferwfreferfersfwrb'