我正在從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
提交
取消