python - 如何在 jinja2 中打印一行字典?

标签 python python-2.7 jinja2

我有变量fruits:

fruits = {
  "apple": {},
  "banana": {
    "params": {
      "color": "yellow",
      "size" 100
    }
  }
}

..还有 jinja2 模板 my_stuff.j2:

In my bag I have:
{% for k,v in fruits.iteritems() %}
- {{ k }}
{% endfor %}

当我渲染它时,我得到:

In my bag I have:
- apple
- banana

问题:我如何实现这一目标:

In my bag I have:
- apple
- banana color="yellow" size="100"

最佳答案

在Python中你可以这样做:

for key,val in fruits.iteritems():
    if val.get('params'):
        print key + ' ' + str(' '.join('{}={}'.format(param_key, param_val) for param_key, param_val in val['params'].items()))
    else:
        print key

Jinja中你可以做这样的事情:

{%for key,val in something.iteritems()%}
    {%if val.get('params')%}
        - {{key}} {%for item in val['params'].items()%} {{item | join ('=') }} {%endfor%}
    {%else%}
        - {{key}}
    {%endif%}
{%endfor%}

关于python - 如何在 jinja2 中打印一行字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43558092/

相关文章:

python - (Python 3.x) Web 抓取代码需要一个多小时才能加载

Python 请求调用因 HTTPS 而失败

python-2.7 - 使用 PIL 保存图像两次

python - 在 Jinja2 中使用 babel 链接

python - 增加 jinja2 模板中的列表项(appengine)

python - 使用 sudo 运行 Django 找不到已安装的 Homebrew 程序包

python - 如何通过python中的 Mechanize 来 Mechanize 返回页面内的网址?

python - 使用 python 将列表中的单引号元素转换为双引号

python - 如何从 python(django) 中的字符串中分离数字?

python - Jinja 表达式中的引用模板变量