Словарь Python в функции JavaScript (внутри HTML) - PullRequest
0 голосов
/ 13 мая 2018

Привет!

Итак, у меня есть функция Python (проект Django), и она отправляет словарь в функцию JavaScript внутри HTML-файла.В скрипте JavaScript (...) я должен напечатать ключ и его значение.Я попробовал это:

<script type="text/javascript">
      google.charts.load('current', {'packages':['table']});
      google.charts.setOnLoadCallback(drawTable);
      var test = "{{ t|escapejs }}";

      const key1 = Object.keys(test)[0];
      top1 = test[key1];

      document.getElementById("demo").innerHTML =key1
      function drawTable() {
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Name');
        data.addColumn('number', 'Messages Amount');

        data.addRows([
          [key1,  {v: top1, f:top1}],

          ['Alice', {v: 12500, f: '$12,500'}], // I have to make it like this, but just with my keys and values
          ['Bob',   {v: 7000,  f: '$7,000'}]
        ]);

        var table = new google.visualization.Table(document.getElementById('table_div'));

        table.draw(data, {showRowNumber: true, width: '100%', height: '100%'});
      }
    </script>

Когда я печатаю top1 на странице, он возвращает символ из тестового словаря.Я не понимаю, почему JS думает, что это строка, а не список.Может мне стоит как-то конвертировать?

1 Ответ

0 голосов
/ 13 мая 2018

Используйте модуль json в Python и JSON.parse в JS. Вот пример.

Python:

import json
send_dict = json.dumps(python_dict)
# send to JS

JS:

// get "send_dict" and put in variable.
var JSDict = JSON.parse(send_dict);

Теперь вы можете использовать JSDict в качестве объекта JavaScript.

...