2017-01-29 253 views
2

我試圖讓使用,給出了一個JSON響應,看起來像這樣的API程序使用數據:從JSON響應

{ 
    "status" : "success", 
    "data" : { 
    "available_balance" : "0.1137", 
    "datastuff" : "0.0000", 
    "moredata" : "0.1137", 
    } 
} 

所以我的計劃看起來是這樣的:

import json 
jsonbaldata = "" 
mytoken = "" 

def getbal(): 
    jsonbaldata = json.loads("https://website.com/api/apinformationhere/?api_key=" + APIKey + "&code=" + my_token) 
    print("Balance: " + available_balance) 
    return; 

print("Starting program...") 
getbal() 

我編輯了很多它,因爲它不涉及到問題,是私人的,但主要的問題是,一旦我打電話給jsonbaldata,我怎麼能在程序中使用它給我的變量?例如,假設我想打印available_balance,我將如何將JSON數據更改爲可用的Python數據?

此外,我甚至正確地調用API來做到這一點?或者是json.loads不是一個很好的方法來做到這一點/有一種更有效的方式來做到這一點。

+0

兩件事情),使用請求B)u得到響應加載它作爲JSON和iterate..you不能json.loads(網址) –

+0

'json.loads'不會調用API不執行Web請求。你需要一個不同的庫。 –

+0

另外,請嘗試閱讀Python json文檔。它回答你的其他問題 –

回答

4

您必須首先使用實際的GET請求來提取API數據。爲此,請使用requests

你會加載像這樣的數據:

import requests 

r = requests.get("https://website.com/api/apinformationhere/", params={'api_key': APIKey, 'code': my_token}) 
data = r.json()[0] 

然後,您可以訪問數據爲Python字典,即

print(data['data']['available_balance']) 
2

您的數據:

js ={ 
     "status" : "success", 
     "data" : { 
     "available_balance" : "0.1137", 
     "datastuff" : "0.0000", 
     "moredata" : "0.1137", 
     } 
    } 

問:「如何在程序中使用它給我的變量」。 「假設我想打印available_balance,我將如何將JSON數據更改爲可用的Python數據?」。

答:您有一個Python字典和訪問數據如下:

js['data']['available_balance'] 

輸出:

'0.1137'

我也建議你閱讀requests documentation因爲它有這樣的例子可以幫助你:

import requests 

r = requests.get('https://api.github.com/events') 
r.json() 

輸出:

[{u'repository': {u'open_issues': 0, u'url': 'https://github.com/...