javascript - 如何将数组变量从 Python 插入到 Javascript

标签 javascript python arrays

我在将数据从数组变量传递到 python javascript 函数时遇到了这个问题。下面是整个脚本

 array1 =[['X-val', 'Y-val'], [4, 5], [8, 12], [11, 14]];

self.response.out.write('<script type="text/javascript">'+
                        'google.load("visualization", "1", {packages:["corechart"]});'+
                        'google.setOnLoadCallback(drawChart);'+
                        'function drawChart() { '+
                        'var data = google.visualization.arrayToDataTable({0});' +
                        'var chart = new google.visualization.LineChart(document.getElementById("casestrend"));chart.draw(data);} '+
                        '</script> '.json.dumps(array1))

这是我要转换为 python 格式的 javascript 代码,其中 arrayToDataTable() 所需的数组将通过查询获取。目前它的静态版本(上面的 array1)不起作用

<script type="text/javascript">                                                                                       
 google.load("visualization", "1", {packages:["corechart"]});                                                        
 google.setOnLoadCallback(drawChart);                                                                                
 function drawChart() {                                                                                              
 var data = google.visualization.arrayToDataTable([['X-val', 'Y-val'], [4, 5], [8, 12], [11, 14]]);                
 var chart = new google.visualization.LineChart(document.getElementById('chart'));                                 
 chart.draw(data);                                                                                                 
 }                                                                                                                   
 </script>  

请告诉我如何将数据(数组)从 python 传递到 javascript 以便加载图表。

最佳答案

您当前的解决方案不起作用,因为 format(您错过了,对吗?)在字符串连接之前调用。

在当前情况下,我更喜欢连接而不是格式,以防止大括号转义:

js_code = '''
          <script type="text/javascript">
          google.load("visualization", "1", {packages:["corechart"]});
          google.setOnLoadCallback(drawChart);
          function drawChart() { 
          var data = google.visualization.arrayToDataTable(''' + json.dumps(array1) + ''');
          var chart = new google.visualization.LineChart(document.getElementById("casestrend"));chart.draw(data);} 
          </script>
          '''

关于javascript - 如何将数组变量从 Python 插入到 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36080978/

相关文章:

javascript - 使用 Google Closure 从 LabelInput 访问数据

javascript - Ext JS 创建自定义组件(类)

python - 为什么更改我的 xpath 可以让我的 selenium click 始终如一地工作?

javascript - 从二维数组中检索对 Angular 线值

javascript - 创建一个数组,其中包含对特定数字求和所需的数字

javascript - 通过子数组的聚合和排序来展平多维数组

javascript - 如何在对象内部没有冗余 'name' 键的情况下获取对象的属性名称?以及如何返回用户提供的 undefined object 的 'name'?

javascript - 下划线前后的正则表达式匹配字符

python - 如何使用 Line Edit 在 PyQt 中等待用户输入?

python - 连接到测试数据库的 Pytest 错误