2016-03-11 46 views
0

我正在使用请求库进行POST请求以获取访问令牌。我的请求正常工作,但是,我不确定如何提取它,然后在GET请求中使用它。从POST请求中检索访问令牌并在GET请求中使用

url = 'https://login.insideview.com/Auth/login/v1/token' 
payload = {'clientId' : '****', 'clientSecret' : '****','grantType':'cred'} 
headers = { 'Accept' : 'application/json'} 
r = requests.post(url, headers=headers, params=payload) 

solution: 
data = json.loads(r.text) 
data['accessTokenDetails']['accessToken'] 

返回:

{"accessTokenDetails":{"accessToken":"the_access_token","tokenType":"bearer","expirationTime":"Fri, Mar 25, 2016 09:59:53 PM GMT","userInfo":{"userId":null,"firstName":null,"lastName":null,"userName":null,"companyName":null,"accountId":null,"role":null}}} 

回答

0

如果它返回一个dict,为什么不直接访问其内容像往常一样?

token = r['accessTokenDetails']['accessToken'] 
+0

不知道我可以这样访问。也不得不使用'json.loads',所以我猜这不是一本字典。你介意提供一个解释吗? Python中初学者的位。谢谢! –

+0

使用JSON加载请求的结果绝对没问题。而JSON解析的结果总是一个'dict',你可以照常使用它。 – jbndlr

1

@ michael-queue从请求到JSON端点的响应是一个JSON编码的字符串。要将它加载到字典并访问内部属性,需要将json.loads(json_string)加载到Python中。对于相反的操作,将字典转储到JSON字符串中是json.dumps(dictionary)

相关问题