Как добавить значение ключа к каждому объекту на карте в шаблоне jinja2

#jinja2

Вопрос:

Я начал использовать шаблоны jinja2 для создания ответа json с использованием некоторых динамических данных, которые будут считываться из файла yaml. Мне нужно добавить несколько полей постоянного ключа:значения к каждому объекту в выходном json. Я не знаю, как использовать силу дзиндзя, чтобы сделать это. Пожалуйста, помогите мне здесь.

Входные данные YML->

 tags:
  - "key": "SubRegion:North America"
  - "key": "Region"
    "value": "America"
 

Вывод желаний (json):

 {
    "tags": 
        {
          "FixedKey1": "FixedValue1",
          "FixedKey2": "FixedValue2",
          "key": "SubRegion:North America"
        },
        {
          "FixedKey1": "FixedValue1",
          "FixedKey2": "FixedValue2",
          "key": "Region",
          "value": "America"
        }
}
 

Мое решение (неполное):

 {% macro eval_tag(value) -%}
{% if value -%}
{{ value }}
{%- else -%}
[]
{%- endif %}
{%- endmacro -%}

{
 "tags": {{ eval_tag(tags) }}
}
 

Обновить
Я нашел свой ответ, но, возможно, это не лучший способ. Так что я все еще открыт для предложений.
В любом случае я обновил свой код, как указано ниже:

Изменение макроса:

 {% macro eval_tag(value) -%}
{% if value -%}
{%- for val in value %}
 {% do val.update({ "source": "USER", "context": "CONTEXTLESS" }) %}
{% endfor %}
 {{ value }}
{%- else -%}
[]
{%- endif %}
{%- endmacro -%}
 

Изменение файла Python:

 def add_to_dict(x,y): return dict(x, **y)

...

env = jinja2.Environment(extensions=['jinja2.ext.do'], loader=jinja2.FileSystemLoader(path or './'))
env.filters['add_to_dict'] = add_to_dict
out = env.get_template(filename).render(yml_data)