Jinja TemplateNotFound 尝试格式化模板内的字符串

Jinja TemplateNotFound when try to format a string inside a template

我有一个 Jinja 模板,它引用了一个 sql 文件,该文件将由 Airflow 操作员 运行。 (据此Airflow doc

execute_query = BigQueryInsertJobOperator(
        task_id="execute_query_task",
        configuration={
            "query": {
                "query" : "{% include 'folder/final_tableA.sql' %}",
                "useLegacySql": False,
            }
        }
    )

它工作得很好。但我的问题是,如果我必须动态更改文件名或文件夹怎么办。此运算符 运行 在 table 列表的 for 循环中,例如tableA,tableB,tableC。 . . 如何格式化此模板中的字符串?

这是我尝试但失败的方法

table = "tableB"
execute_query = BigQueryInsertJobOperator(
          . 
          . 
          . 
"       "query" : {% include 'folder/final_{}.sql'.format(table) %}"

遇到这个错误

jinja2.exceptions.TemplateNotFound: folder/final_{'json': None, 'value': None}.sql

看不到 DAG 也无济于事,但您试过了吗?

"query": "{{% include 'folder/final_{}.sql'%}}".format(table)

{{ 是用 format.

对模板字符串进行转义