检索字典值jinja

jum*_*947 3 python jquery dictionary jinja2

我有一个看起来像这样的 python 字典

[{"hat": 91, "d1b": 2, "d1c": 1, "d1d": 5, "d1e": 7, "d1f": 77, "d1e": 999}
{"hat": 1, "d2b": 2, "d2c": 3, "d2d": 4, "d2e": 5, "d2f": 6, "d2e": 7}
{"hat": 1, "d3b": 2, "d3c": 3, "d3d": 4, "d3e": 5, "d3f": 6, "d3e": 7}]
Run Code Online (Sandbox Code Playgroud)

我将它作为字典对象 (mydict) 从 python 传递给 jinja

我要做的是遍历每个字典并打印出我搜索的键的值。并将其显示在 jquery 警报框中。

$(document).ready(function() {

        {% for i in mydict %}
          {{ loop.index0 }}, {{a,["hat"] }}
               alert( {{ hat }} );
            {% endfor %}
        });
Run Code Online (Sandbox Code Playgroud)

当我转到我的网页时,它给了我一个错误

Uncaught SyntaxError: Unexpected token &

$(document).ready(function() {


          0, (Undefined, [[hat[])
               alert(  );

          1, (Undefined, [hat])
               alert(  );

          2, (Undefined, [hat])
               alert(  );

        });
Run Code Online (Sandbox Code Playgroud)

它没有被定义,也没有打印警报。

JRa*_*zor 7

您需要对字典使用像 python 这样的调用(它不是集合):

{% for i in dict %}
    {{ i['hat'] }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

集合可以作为字典访问,而字典不能作为集合调用。如果此集合或i['hats']如果它是集合或字典,则需要以任何方式使用i.hat

只需尝试替换它:

alert( {{ hat }} );
Run Code Online (Sandbox Code Playgroud)

到:

alert( {{ i['hat'] }} );
Run Code Online (Sandbox Code Playgroud)