我正在从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 }}
)];
添加回答
举报
0/150
提交
取消