将字典转换为Javascript JSON对象?

时间:2018-08-16 08:51:30

标签: python json jinja2

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对象?谢谢。

1 个答案:

答案 0 :(得分:2)

使用JSON.parse方法

<script>
    var bgjson = {{BgDict|tojson|safe}};
    console.log(jQuery.type(bgjson));
    console.log(JSON.parse(bgjson)[4]);
</script>