python - 如何在使用 jinja2 时将新条目添加到字典对象中?

标签 python dictionary jinja2

在使用 jinja2 模板时,我无法将新条目追加到字典对象中。

例如,这里我使用的是 jinja2 模板,我创建了一个 data 变量,它是一个字典。在检查了一些 if 条件后,我想要将位置属性附加到数据对象,例如

{%- set data = {
                  'name' : node.Name,
                  'id' : node.id,
               }
-%}

{% if node.location !="" %}
    data.append({'location': node.location}) 
{% endif %}

但是我找不到实现此目的的方法,并收到 UndefinedError:

jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'append'

有没有人遇到过这个问题或者可以提供解决这个问题的引用?

我在网上搜索但找不到解决方案,即如何实现向 Jinja 中的字典对象添加条目。

我引用了以下和其他网络资源:

  1. http://cewing.github.io/training.codefellows/assignments/day22/jinja2_walkthrough.html
  2. In Jinja2 whats the easiest way to set all the keys to be the values of a dictionary?
  3. https://github.com/saltstack/salt/issues/27494

最佳答案

没有 jinja2.ext.do 扩展,你可以这样做:

{% set x=my_dict.__setitem__("key", "value") %}

忽略 x 变量并使用现在更新的字典。

UPD:此外,这适用于 len() (__len__())、str() (__str__() )、repr() (__repr__()) 和许多类似的东西。

关于python - 如何在使用 jinja2 时将新条目添加到字典对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36886650/

相关文章:

python - 如何按字母顺序对单键字典数组进行排序?

javascript - 在if语句下的html中使用javascript变量

python - 有什么方法可以知道当前的 url 是否在 Flask 的特定蓝图中?

python - Pyramid i18n 使用两个语言环境目录

python - Jupyter笔记本 'greedy completer'配置

python - 如何仅使用 random.randint() 随机化列表? (关闭)

python - 将信息存储到.exe文件中,从python导出

python - 进入子文件夹(python)

swift - 我应该如何从 firebase 检索数据并将其放入字典中?

c# - 如何在 C# 中转换存储在 session 中的字典?