2017-05-08 281 views
0

我正在尋找解析網頁上請求的一些數據。Python解析json關鍵字

到目前爲止,我已經能夠配置以下。

import urllib.request,json 

with urllib.request.urlopen("JSONURL") as url: 
    data = json.loads(url.read().decode()) 
    print(data["live-status-local"]) 

這將返回以下信息

{ '狀態': '錯誤', '狀態-描述':「攝取選項:{源名= A,ratelimit = 3250000};後端:(null); Src:文件IO錯誤;推送:由於最近的源信號問題,不會嘗試推送; ','status-description-debug':'','user-message':'源信號問題','status-map':{'Ingest options':{'text':'{srcname = a, ratelimit = 3250000}','level':'unknown'},'Backend':{'level':'ok'},'Src':{'text':'File IO error','level':'error '','Push':{'text':'不會因最近的源信號問題而試圖推送','level':'error'},'BCC Setup':{'level':'ok','調試':'會話s3打開。 ''}},'status-data':{'session-id':'s3','input.bitrate':'149'}}

我想打印/ :「錯誤」

如果是這樣的話,我希望系統返回指出存在錯誤。

有人能幫助我指出了正確的方向?

+0

你已經反序列化JSON的,你用Python對象的工作。你問如何使用'dict'? –

+0

'如果數據[「活狀態 - 本地」] [「狀態」] ==「錯誤」:' – Barmar

+0

是的,我想特別檢查該字典項。我對Python很陌生,所以這裏的任何指針都會有所幫助。 – yarrsmash

回答

0

我一直在使用以.json()取得了成功。隨着請求進口的,請嘗試以下操作:

urlResults = requests.get("http://example.com/file.json") 
data = urlResults.json() 

if data["live-status-local"]["status"] == "error": 
    #handle error