Значения bool только в нижнем регистре Jinja2

#jinja2

#jinja2

Вопрос:

У меня есть словарь значений, некоторые значения являются целыми числами, некоторые — строками, некоторые — логическими. В моем шаблоне jinja2 я в настоящее время использую это:

 {% for key, value in account.properties.items() %}
    <property key="{{ key }}" value="{{ value|string }}"/>
{% endfor %}
  

Проблема в том, что я хочу, чтобы все логические значения были в нижнем регистре, все остальное должно оставаться нормальным. Прямо сейчас я получаю False и True вместо false и true .
Я также пробовал с to_json, но тогда строковые значения имеют кавычки и целое число, а bool — нет, поэтому для приведенного выше примера у меня есть «»строка»», которая также является чем-то, чего я не хочу.

Ответ №1:

Теперь я использую to_json и replace для удаления кавычек. Тем не менее, я думаю, это может быть потенциальной проблемой для строк с экранированными кавычками, например `»foo «bar». Но на данный момент я не знаю, есть ли они.

 value="{{ value | to_json | replace(""", "") }}"