Sul*_*ing 0 python format jinja2 airflow
我正在尝试运行要由 Airflow 呈现的 SQL 语句,但我也在尝试在从 Python 传入的语句中包含一个变量。SQL 语句只是一个 where 子句,在 之后WHERE,我试图添加一个日期时间,减去几秒钟:
f" ' {{ ts - macros.timedelta(seconds={lower_delay} + 1) }} ' "
Run Code Online (Sandbox Code Playgroud)
所以我希望在 Airflow 中计算和呈现双花括号中的内容,但我想传入这个lower_delay在执行之前调用的变量。我尝试过使用零、一个或两个附加花括号lower_delay以及整个字符串的不同组合,但似乎每次都会遇到不同的错误。
传递此lower_delay变量(它只是一个数字)以使其最终正确呈现的正确方法是什么?
Jinja 模板需要两个大括号,当你使用 f-strings 或str.format 时,它会在渲染时用一个替换两个大括号:
格式字符串包含用大括号 {} 包围的“替换字段”。大括号中未包含的任何内容都被视为文字文本,将原样复制到输出中。如果需要在文字文本中包含大括号字符,可以通过加倍转义:{{ 和 }}。
所以以下应该工作:
f" ' {{{{ ts - macros.timedelta(seconds={lower_delay} + 1) }}}} ' "
Run Code Online (Sandbox Code Playgroud)