{# _macros.jinja2 #} {% macro get_value(dict, path) %} {# Split the path into keys #} {% set keys = path.split('.') %} {% if keys and dict is mapping and keys[0] in dict %} {% set next_value = dict[keys[0]] %} {% if keys | length == 1 %} {{ next_value }} {% else %} {{ get_value(next_value, keys[1:] | join('.')) }} {% endif %} {% else %} {{ none }} {% endif %} {% endmacro %}