为了账号安全,请及时绑定邮箱和手机立即绑定

Google图表-无效的语法或意外的令牌

Google图表-无效的语法或意外的令牌

素胚勾勒不出你 2021-03-31 14:11:17
我正在从mysql提取数据以绘制在饼图中。我正在使用jinja模板语法的python flask中执行此操作。我想显示一个饼图。调试器向我展示了这一点 var data = google.visualization.arrayToDataTable([                ['Shock', 'Number'],               {% for record in data %}                 ['{{record.shockStatus}}', {{record.number}}],               {% endfor %}       我可以在控制台中看到这些值。但是它一直说无效的语法或令牌。如果您能指出我做错了什么,将不胜感激。谢谢你。更新数据中包含什么。[{u'number': 7, u'shockStatus': u'absent\r\n'}, {u'number': 7, u'shockStatus': u'present\r\n'}]
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

您有两个问题:

  • 您的输入数据已嵌入换行符。您可能想用Python代码在生成数据时进行修复。

  • 您将对原始数据进行插值,就好像它是JavaScript安全的一样。不要那样做 使用tojson过滤器生成Javascript兼容语法。

在Python中,将data序列转换为Javascript的正确格式,即,将shockStatus和数字值配对:

# if you have dictionaries

data_transformed = [[r['shockStatus'].strip(), r['number']] for r in data]

# or if you have objects with attributes

data_transformed = [[r.shockStatus.strip(), r.number] for r in data]

我str.strip()在那里打了一个电话,以从您的shockStatus值中删除换行符和其他开头或结尾的白人节奏。


将其传递到您的模板并使用:


 var data = google.visualization.arrayToDataTable([

                ['Shock', 'Number'],

                {{ data_transformed|tojson|safe }}

 )];


查看完整回答
反对 回复 2021-04-13
  • 1 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信