Данные Json для Flask Javascript - не определены - PullRequest
0 голосов
/ 12 января 2019

У меня был этот код, работавший несколько лет назад, и недавно я вернулся к нему, у меня на веб-странице обновляются данные 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 Dabbs

1 Ответ

0 голосов
/ 12 января 2019

Вы, похоже, получаете доступ к свойствам в 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)
    }

  );

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...