获取外部循环的循环索引,以逗号结束



在jinja2中,我在另一个循环中有一个循环,如果不是最后一个循环,我想写一个逗号。

这是我目前为止写的:

// ksp = "{'a': ['someString', ['someString'], ['a1', 'a2']], 'b': ['someString', ['someString'], ['b1', 'b2', 'b3']]}"
"users": {
{% for kvd in ksp %}
{% set outer_loop = loop %}
{% for kvt in ksp[kvd][2] %}
"{{ kvt }}": {
"username": "{{ ksp[kvd][1][0] }}"
}{% if not outer_loop.last %},{% endif %}{% endfor %}{{ '' }}{% endfor %}
},

这是我得到的:

"users": {
"a1": {
"username": "someString"
},
"a2": {
"username": "someString"
},
"b1": {
"username": "someString"
}
"b2": {
"username": "someString"
}
"b3": {
"username": "someString"
}
}

如您所见,它在最后三个中缺少逗号,因为它们属于最后一个outer_loop。因此,它不是一个有效的JSON。我怎么解决这个问题?

现在可以工作了,只需更改"if"条件:

{% if not (outer_loop.last and loop.last) %},{% endif %}{% endfor %}{{ '' }}{% endfor %}

最新更新