簡體   English   中英

遍歷嵌套的JSON

[英]iterate through nested JSON

我正在嘗試在json api響應中進行迭代,但無法訪問所需的數據

這是一個api響應示例。 “我知道它不完整或有效的json :)”

{
"status": "running",
"reasons": [],
"nodes": {
    "Server1": {
        "status": "running",

我正在使用一個簡單的for循環遍歷它!

for platforms in sbNode:
request = urllib2.Request(API URL)
json_res = json.load(urllib2.urlopen(request))
for node in json_res['nodes']:
    print node['status']

我收到一條錯誤消息

TypeError:字符串索引必須是整數

通常,我只是打印for循環以查看json數據,但它僅打印Server1。

我在這里迷路了....

救命 !!!

謝謝

json_res['nodes']是一本字典。 遍歷字典只會給您鍵,因此node的第一個值可以是例如'Server1' 如果需要鍵和值,則可以使用.items()進行迭代:

for key, node in json_res['nodes'].items():

如果只需要節點的值,則可以使用.values()

for node in json_res['nodes'].values():

您缺少數據的深度知識,因為json_res['nodes']是字典

json_res['nodes'] = {
    "Server1": {
        "status": "running",
         ...

您可以添加嵌套循環以打印服務器狀態:

for node in json_res['nodes']:
    for server in node:
         print server['status']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM