2014-09-01 72 views
0

我閱讀對象:如何獲取python中某個名稱鍵的項目值?

data = json.load(urllib2.urlopen(url)) 

我有JSON是這樣的:

 {"state": 
      [{"connected": true, "name": "smtp"}] 
       {"connected": true, "name": "emailer"} 
       {"connected": true, "name": "mysql"} 
       {"connected": true, "name": "mongodb"} 
       {"connected": true, "name": "redis"} 
       {"state": 
        [{"connected": true, "name": "mysql"} 
         {"connected": true, "name": "mongodb"}] 
         "connected": true, "name": "vault"} 

我應該用什麼來獲得項目的連接狀態與任何名字?例如,「mysql」 - 「true」。 JSON的 結構可以在未來被改變,這就是爲什麼我不希望用這樣的代碼:關於使用遞歸函數來建立一個輔助表,其方式如什麼

print data['state'][0]['connected'] 

回答

0

def buildConnectionTable(table): 
    result = {} 

    if type[table] == list: 
     subresult = buildConnectionTable(table[0]) 
     result.update(subresult) 

    for key, value in table.items(): 
     if key == state: 
      subresult = buildConnectionTable(value) 
      result.update(subresult) 
     else: 
      result[value["name"]] = value["connected"] 

    return result 

connection_table = buildConnectionTable(data) 

print connection_table["mysql"] 
print connection_table["vault"] 
print connection_table["redis"] 

這可能是不正確的代碼,因爲我目前無法測試它,但希望它至少能夠演示解決此問題的可能方案。

相關問題