Данные Json для Flask Javascript - не определены

1

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

Теги:
arrays
flask

1 ответ

0

Похоже, вы обращаетесь к свойствам 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)
    }

  );

}
  • 0
    спасибо за ваш ответ, он отправил меня по правильному пути :), я немного больше прочитал и преобразовал его в python, когда вы конвертируете его в json, список становится массивом json, а dict становится объектом json.
  • 0
    @craigdabbs рад, что помог

Ещё вопросы

Сообщество Overcoder
Наверх
Меню