首页 > 关于Django和Highcharts使用时传入series的字符编码问题

关于Django和Highcharts使用时传入series的字符编码问题

使用django框架做网站进行数据统计与分析,中间用到了highcharts插件,现在是需要从view函数中传入series数据到网页模版中。view中的数据如下所示:

series_1 = [
    {'type': 'column', 'data': [4056], 'name': '版本1'},
    {'type': 'column', 'data': [3016], 'name': '版本2'},
    {'type': 'column', 'data': [3765], 'name': '版本3'},
    {'type': 'column', 'data': [4056], 'name': '版本4'}

视图函数如下所示:

def chart2(request):
    context = {
    'series':series_1
    }
    return render(request, 'chart2.html', context)

网页相关highcharts代码如下所示:

<script>
$(function () {
    $('#container').highcharts({
        title: {
            text: 'Tongji',
            x: -20 //center
        },
        yAxis: {
            title: {
                text: 'number'
            },
            plotLines: [{
                value: 0,
                width: 1,
                color: '#808080'
            }]
        },
        series:{{series|safe}}
    });
});
</script>

然后运行网站打印出的图表都是乱码,如下图所示:

我使用的python版本是python2.7.10,数据库是mongodb3.2.4,如果给中文字符串加上’u‘前缀都变成

{'type': 'column', 'data': [4056], 'name': u'版本1'}

这样子的话,js就会报错,报错信息如下:

似乎js不能正确识别u,把它当成了一个属性。
请各位高手出马看看这个问题怎样解决,不胜感激。


import json
context = {
    'series':json.dumps(series_1)
    }
【热门文章】
【热门文章】