【发布时间】:2020-10-25 20:31:53
【问题描述】:
我正在使用 spotify 的 API 来获取本周的新版本,我正在尝试解析返回的数据以使用 jinja2 将其显示在网页上,问题是每次我尝试运行程序时都会弹出一个错误向上说:jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag 'info'. Jinja was looking for the following tags: 'elif' or 'else' or 'endif'. The innermost block that needs to be closed is 'if'.
我尝试了不同的语法来附加到 jinja2 中的列表,但没有任何效果,它只是给了我相同的 jinja2.exceptions.TemplateSyntaxError: Encountered unknown tag
为了更好地了解 spotify 返回的数据,您可以使用 spotify 的控制台:https://developer.spotify.com/console/get-new-releases/?country=&limit=&offset=
这是我写的代码,不胜感激。谢谢。
<section class="wrapper">
<div class="new-releases">
<h1 id="NRH">New Releases</h1>
<hr>
<div class="row">
<div class="records">
{% for record in releases['albums']['items'] %}
{% for key, value in record.items() %}
{% set info = [] %}
{% if key == "name" %}
{% append value to info %}
{% endif %}
{% if key == "artists" %}
{% for k, v in value[0].items() %}
{% if k == "name" %}
{% append v to info %}
{% endif %}
{% endfor %}
{% endif %}
{% if key == "external-urls" %}
{% for k, v in value[0].items() %}
{% if k == "spotify" %}
{% append v to info %}
{% endif %}
{% endfor %}
{% endif %}
{% if key == "images" %}
{% for k, v in value[1].items() %}
{% if k == "url" %}
<img src="{{v}}" title="{{info[0]}}.{{info[1]}}">
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% endfor %}
</div>
</div>
</div>
<hr>
</section>
【问题讨论】:
-
我从未见过这种语法:
{% append value to info %}。我想那是错误的。 -
那个文档说 “因为我们想避免使用底层的 python 语言,所以 Exponea 中的符号与 Jinja 中官方支持的符号有些不同。你需要使用
myList.append(myValue)而不是append myValue to myList"。现在,我以前从未听说过“Exponea”,但它似乎是 Jinja 的变体,具有不同的语法。你应该使用 Exponea 而不是 Jinja 才能工作。