Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript函数中的Python字典(HTML内部)_Javascript_Python_Html_Web_Google Visualization - Fatal编程技术网

JavaScript函数中的Python字典(HTML内部)

JavaScript函数中的Python字典(HTML内部),javascript,python,html,web,google-visualization,Javascript,Python,Html,Web,Google Visualization,嘿 所以我有一个Python函数(Django项目),它将一个字典发送到HTML文件中的JavaScript函数中。在JavaScript脚本(…)中,我应该打印键及其值。我试过这个: <script type="text/javascript"> google.charts.load('current', {'packages':['table']}); google.charts.setOnLoadCallback(drawTable); va

所以我有一个Python函数(Django项目),它将一个字典发送到HTML文件中的JavaScript函数中。在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>

load('current',{'packages':['table']});
google.charts.setOnLoadCallback(drawTable);
var test=“{t|escapejs}}”;
const key1=Object.keys(测试)[0];
top1=测试[key1];
document.getElementById(“demo”).innerHTML=key1
函数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:'$12500'}],//我必须这样做,但只需要使用我的键和值
['Bob',{v:7000,f:'7000'}]
]);
var table=新的google.visualization.table(document.getElementById('table_div');
table.draw(数据,{showRowNumber:true,宽度:'100%,高度:'100%});
}

当我在页面上打印top1时,它会从测试字典返回一个字符。我不明白为什么js认为这是一个字符串,而不是一个列表。也许我应该以某种方式转换它?

使用Python中的
json
模块和JS中的
json.parse
。这里有一个例子

Python:

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


现在您可以将JSDict用作JavaScript对象

它是一个字符串,因为它在引号中。
// get "send_dict" and put in variable.
var JSDict = JSON.parse(send_dict);