关于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,把它当成了一个属性。
请各位高手出马看看这个问题怎样解决,不胜感激。

阅读 3.9k
1 个回答
import json
context = {
    'series':json.dumps(series_1)
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题