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
.
对模板字符串进行转义
我有一个 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
.