【问题标题】:Flask Javascript Json Data - UndefinedFlask Javascript Json 数据 - 未定义
【发布时间】:2019-01-11 22:52:01
【问题描述】:

几年前我确实有这段代码工作过,最近又回来了,我在网页上有一个 javascript 刷新数据。我使用 json 调用服务器并接收我认为没问题的内容。

我的 python 数据库代码,似乎工作正常。

    cur = db.execute('select sensor_name, temp from cur_temps ORDER BY sensor_name')
    return jsonify(cur.fetchall())

收到Json

[["BoilerRoom",24.94],["Cylinder1",49.94],["Cylinder2",42.38],["Cylinder3",41.88],["Sensor1",85],["SolidFuelFlow",59],["SolidFuelReturn",41.62]]

我正在尝试获取与 Cylinder2 = 42.38 关联的数字

我之前运行的js代码如下

<script type=text/javascript>
function get_temps() {
    $.getJSON("_status",
            function (data) {

                $('#CylTop').text(data.Cylinder1 + "°")
                $('#CylMid').text(data.Cylinder2 + "°")
                $('#CylBot').text(data.Cylinder3 + "°")
                $('#Solid_flow').text(data.SolidFuelFlow)
                $('#Solid_return').text(data.SolidFuelReturn)
                $('#BRoom').text(data.BoilerRoom);
                console.log(data)
                console.log(data.Cylinder1)
            }

    );

}
setInterval('get_temps()', 5000);
</script>

控制台在浏览器中显示(数据)正常,当我尝试显示其他内容时。 'console.log(data.Cylinder1)' 显示未定义。 我是一个新手,所以我假设一些索引需要作为一个数组发生,但我有点迷失了。 任何指导将不胜感激。

非常感谢

C 达布斯

【问题讨论】:

    标签: javascript python arrays flask


    【解决方案1】:

    您似乎将data 中的属性作为对象访问。根据响应,它是数组中的一个数组。因此,您必须先将其展平,然后才能以您拥有的方式访问它。

    function get_temps() {
      $.getJSON("_status",
        function(data) {
          let flattendData = data.reduce(function(acc, item) {
            return Object.assign({}, acc, {
              [item[0]]: item[1]
            });
          }, {});
    
          $('#CylTop').text(flattendData.Cylinder1 + "°")
          $('#CylMid').text(flattendData.Cylinder2 + "°")
          $('#CylBot').text(flattendData.Cylinder3 + "°")
          $('#Solid_flow').text(flattendData.SolidFuelFlow)
          $('#Solid_return').text(flattendData.SolidFuelReturn)
          $('#BRoom').text(flattendData.BoilerRoom);
          console.log(flattendData)
          console.log(flattendData.Cylinder1)
        }
    
      );
    
    }

    【讨论】:

    • 感谢您的回复,它在正确的路径上发送给我 :),我做了更多阅读并在 python 中将其转换,当您将其转换为 json 时,列表变为 json 数组和 dict变成 json 对象。
    • @craigdabbs 很高兴能提供帮助
    猜你喜欢
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多