Jinja模板渲染双引号或单引号为' "
你好,我正在尝试在jinja模板中使用Google可视化API。
我拿了一些示例参数并传递给了API,但它把单引号和双引号转换成了'和&。
这是我的脚本:
<script type="text/javascript">
//load the Google Visualization API and the chart
google.load('visualization', '1', {'packages': ['columnchart']});
//set callback
google.setOnLoadCallback (createChart);
//callback function
function createChart() {
//create data table object
var dataTable = new google.visualization.DataTable();
//define columns
dataTable.addColumn('string','Quarters 2009');
dataTable.addColumn('string', 'Earnings');
//define rows of data
// answerjson=answerjson.replace("'",'"');
{% set answerjson1='[["1": "Saturday"], ["6": "Sunday"], ["1": "Wednesday"], ["1": "Monday"], ["1": "Monday"], ["1": "Tuesday"], ["1": "Sunday"]' %}
dataTable.addRows( {{answerjson1}} );
//instantiate our chart object
var chart = new google.visualization.ColumnChart (document.getElementById('chart'));
//define options for visualization
var options = {width: 400, height: 240, is3D: true, title: 'Company Earnings'};
//draw our chart
chart.draw(dataTable, options);
}
</script>
这是传递给API的输入:
请帮帮我,我该怎么做。
2 个回答
4
tojson 过滤器可以把数据以 JSON 格式呈现出来:
dataTable.addRows( {{ answerjson1 | tojson }} );
使用 safe 过滤器可能会导致错误,特别是在你之后再把数据转成 JSON 的时候。例如,safe 过滤器生成的 JSON 字符串是用单引号包起来的,而 JSON.parser() 函数只能接受用双引号包起来的字符串作为输入。
30
使用 safe 模板过滤器:
dataTable.addRows( {{ answerjson1 | safe }} );