
在我的vIEw.py中我从MysqL中提取数据,例如数组:
(Decimal('13'),Decimal('6'),Decimal('13'))(Decimal('207'),Decimal('18'),Decimal('129'))(Decimal('301'),Decimal('38'),Decimal('193'))(Decimal('204'),Decimal('32'),Decimal('150'))(Decimal('159'),Decimal('25'),Decimal('88'))args = {'array':array}return render_to_response('page2.HTML',args) 试图把它放入谷歌图表
function drawChart() { var djangoData = JsON.parse('{{ args }}'); var data = Google.visualization.arrayToDatatable(djangoData); 还尝试了var djangoData = {{array}};
两个都没有运气!
EDIT1
建议
return render_to_response('page2.HTML',{'array': Json.dumps(array)}) 看起来它会起作用,除了db产生不兼容的类型.有没有办法在不将每个项目转换为int类型的情况下执行此 *** 作.或者,如果有一种pythonic方式转换它?
编辑 – 解决方案
使用选定的答案并向数组添加| safe,所以{{array | safe}}
解决方法 你应该在vIEw.py中尝试这个(不要忘记添加import Json):array = [['X','Y','Z'],[1,2,3],[4,5,6]]return render_to_response('page2.HTML',{'array': Json.dumps(array)}) 然后在模板中使用不带引号的原始值数组:
var djangoData = {{ array|safe }};var data = Google.visualization.arrayToDatatable(djangoData); 编辑:使用自定义JsONEncoder来处理从this question被盗的Decimal类型:
class DecimalEncoder(Json.JsONEncoder): def default(self,o): if isinstance(o,decimal.Decimal): return float(o) return super(DecimalEncoder,self).default(o)
然后在视图中:
array = [['X',[Decimal('1'),Decimal('2'),Decimal('3')]]return render_to_response('page2.HTML',{ 'array': Json.dumps(array,cls=DecimalEncoder),}) 总结 以上是内存溢出为你收集整理的python – 使用Django将数据传递到Google Charts全部内容,希望文章能够帮你解决python – 使用Django将数据传递到Google Charts所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)