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

Get loop index of outer loop and end with comma

在 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.index,因此它不是有效的 JSON。我该如何解决?

现在工作,只需将“if”条件更改为:

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