在views.py
中,我有一本这样的字典:
BgDict = {
'1': '#031B4D',
'0': '',
'3': '#062847',
'2': '#303E4D',
'5': '#115478',
'4': '#00122e',
'7': '#152324',
'6': '#243447',
'8': '#11202F'
}
我想将dict BgDict
转换为jinja2模板中的Javascript Json Object,所以我的整个代码是这样的
views.py
@app.route('/User/Profile/', methods=['GET', 'POST'])
def getFormUpload():
BgDict = {
'1': '#031B4D',
'0': '',
'3': '#062847',
'2': '#303E4D',
'5': '#115478',
'4': '#00122e',
'7': '#152324',
'6': '#243447',
'8': '#11202F'
}
return render_template("profile.html", BgDict=json.dumps(BgDict))
profile.html
<script>
var bgjson = '{{BgDict|tojson|safe}}';
console.log(jQuery.type(bgjson));
console.log(bgjson[4]); // it should be #00122e but it is :
</script>
在控制台日志中,其类型为String
,因此bgjson[4]
是:
而不是#00122e
。
这发生了什么?如何从json
中获取BgDict
对象?谢谢。
答案 0 :(得分:2)
使用JSON.parse方法
<script>
var bgjson = {{BgDict|tojson|safe}};
console.log(jQuery.type(bgjson));
console.log(JSON.parse(bgjson)[4]);
</script>