如何在不知道密钥的情况下使用javascript从多级JSON获取值

时间:2017-08-02 15:06:12

标签: javascript 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, 
        }
    }
}

我正在使用以下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!"


with open ('data.txt', 'w') as outfile:
    json.dump(result, outfile)


app = Flask(__name__)

@app.route('/')
def homepage():
    with open('data.txt') as f:
        s = f.read()

    return render_template("homepage.html" , nameTxt = s)


if __name__ == "__main__":
    app.run()

我可以将python文件中的json数据传递给javascript。解析后,我能够使用JSON.Stringify查看所有值。但是,我无法一次获得一个值。我要做的是将每个键保存在自己的文件中(例如,bathroom_temp,date,fridge_level等等),并在json以周期性方式更新时附加值。所以,稍后我可以获得我需要的任何关键数据,并使用数据绘制线图。例如,bathroom_temp文件应包含“16,20,23”,这可用于绘制图形。

以下是我的javascript代码:

<script>
      var test = JSON.parse({{ nameTxt|tojson }});
      for(key in test)
      {
          if(test.hasOwnProperty(key))
          {
              var value = test[key];
              alert(JSON.stringify(value, null, 4));

           }
       }
  </script>

1 个答案:

答案 0 :(得分:0)

您可以概括如下:

for(key in test['sensors']) {
  var sensor = test['sensors'][key];
  console.log(sensor['bathroom_temp']);
}