python 解析多级Json

Sub*_*aac 5 python json

我有以下 json:

{"sensors": 
        {"-KqYN_VeXCh8CZQFRusI": 
            {"bathroom_temp": 16,
             "date": "02/08/2017", 
             "fridge_level": 8,
             "kitchen_temp": 18, 
             "living_temp": 17, 
             "power_bathroom": 0, 
             "power_bathroom_value": 0, 
             "power_kit_0": 0
        }, 
        "-KqYPPffaTpft7B72Ow9": 
            {"bathroom_temp": 20, 
             "date": "02/08/2017", 
             "fridge_level": 19, 
             "kitchen_temp": 14, 
             "living_temp": 20, 
             "power_bathroom": 0, 
             "power_bathroom_value": 0
        },  
        "-KqYPUld3AOve8hnpnOy": 
            {"bathroom_temp": 23, 
             "date": "02/08/2017", 
             "fridge_level": 40, 
             "kitchen_temp": 11, 
             "living_temp": 10, 
             "power_bathroom": 1, 
             "power_bathroom_value": 81, 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的Python代码:

from flask import Flask, render_template, json, url_for
from firebase import firebase
import os




firebase = firebase.FirebaseApplication('https://my-firebase-db-958b1.firebaseio.com/', None)
result = firebase.get('/Dublin-Ireland', None)
print "\n Json file created!\n"

data_temp = result.values()[0]

for key, value in data_temp.iteritems():
    print key
    print value
    print "\n\n"
Run Code Online (Sandbox Code Playgroud)

使用当前代码,我可以查看键“KqYN_VeXCh8CZQFRusI”、“KqYPPffaTpft7B72Ow9”等,以及这些键的值:

{"bathroom_temp": 16,
             "date": "02/08/2017", 
             "fridge_level": 8,
             "kitchen_temp": 18, 
             "living_temp": 17, 
             "power_bathroom": 0, 
             "power_bathroom_value": 0, 
             "power_kit_0": 0
        }, 
Run Code Online (Sandbox Code Playgroud)

 {"bathroom_temp": 20, 
         "date": "02/08/2017", 
         "fridge_level": 19, 
         "kitchen_temp": 14, 
         "living_temp": 20, 
         "power_bathroom": 0, 
         "power_bathroom_value": 0
    },  
Run Code Online (Sandbox Code Playgroud)

我需要获取二级键及其值。我试图为每个键(“bathroom_temp”、“power_bathroom”等)创建一个文件,并将这些键的所有相应值保存在文件中。

例如,文件“bathroom_temp.txt”的值为“16,20,23”。

nov*_*imo 4

您可以将 JSON 数据放入变量中:

data = {"sensors":
        {"-KqYN_VeXCh8CZQFRusI":
            {"bathroom_temp": 16,
             "date": "02/08/2017",
             "fridge_level": 8,
             "kitchen_temp": 18,
             "living_temp": 17,
             "power_bathroom": 0,
             "power_bathroom_value": 0,
             "power_kit_0": 0
        },
        "-KqYPPffaTpft7B72Ow9":
            {"bathroom_temp": 20,
             "date": "02/08/2017",
             "fridge_level": 19,
             "kitchen_temp": 14,
             "living_temp": 20,
             "power_bathroom": 0,
             "power_bathroom_value": 0
        },
        "-KqYPUld3AOve8hnpnOy":
            {"bathroom_temp": 23,
             "date": "02/08/2017",
             "fridge_level": 40,
             "kitchen_temp": 11,
             "living_temp": 10,
             "power_bathroom": 1,
             "power_bathroom_value": 81,
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后使用嵌套索引地址来获取所需的参数:

kitchen_temp = data["sensors"]["-KqYN_VeXCh8CZQFRusI"]["kitchen_temp"]
print(kitchen_temp)
Run Code Online (Sandbox Code Playgroud)

  • 这适用于第一组数据,我有数百个数据,并且第一级值(例如 KqYPPffaTpft7B72Ow9)是随机的,我无法控制其名称。 (4认同)