【问题标题】:Comma Separating List Values in a Jinja templateJinja 模板中的逗号分隔列表值
【发布时间】:2014-08-01 16:52:06
【问题描述】:

我正在使用 for 循环来创建一个类似 [1, 2, 3] 的列表。这是我的 Jinja 模板,它产生了一些 Javascript:

xAxis: {
                categories: {
                    [
                    {% for data in records['result'] %}
                        {{ data['_id']['day'] }},
                    {% endfor %}
                ]
            },

它运行良好并生成预期结果,但我的 IDE (PyCharm) 抱怨最后的逗号是不必要的(不是):[1,2,3,] 而不是 [1,2,3]

有没有更好的方法将逗号放在末尾(例如先转换为字符串并将逗号连接到末尾)?或者,我应该忽略警告吗?

【问题讨论】:

  • 请注意,其他人不会像您一样将您的问题放在脑海中,并注意细节。你的代码是什么? is 肯定不是 Python,它看起来像一些 jinja2 或 Django 模板,但有点奇怪。
  • 我会使用 join 过滤器而不是循环

标签: python jinja2


【解决方案1】:

如果你使用的是 Jinja(好像是这样),可以使用the join filter directly

xAxis: {
            categories: {
                [{{ records['result']|join(', ', attribute='_id.day') }}]
        },

attribute 语法允许通过用点分隔子键来获取子键,according to the source code

【讨论】:

  • 完美!效果很好——不知道attribute。谢谢! :)
  • 如果我想加入属性_id.month_id.day来生成像[1/1, 1/2]这样的列表,为什么我不能这样做呢? [{{ records['result']|join(', ', join(attribute='_id.month', attribute='_id.day')) }}]
  • 你不能用模板“简单地”做。您应该查看您的 records 数据结构以包含直接获取 _id.day+"/"+id._month 的方法。
猜你喜欢
  • 2012-08-12
  • 2021-12-29
  • 2010-11-17
  • 1970-01-01
  • 2014-05-14
  • 2016-09-27
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
相关资源
最近更新 更多