2016-03-11 58 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)

相關問題