我正在尝试将动态日期值传递给宏函数ds_format。
DEFAULT_DATE= '{{ ds }}'
__init__(self, exec_date=DEFAULT_DATE): self.exec_date = exec_date
现在,我在
之类的函数中有一些宏{{macros.ds_format(ds, "%Y-%m-%d", "%Y%m%d")}}
但是,我想像这样将exec_date传递给宏
"""{{ macros.ds_format(""" + self.exec_date + """, "%Y-%m-%d", "%d%m%Y") }}"""
这是将值传递给Airflow(jinja2)中的微型计算机的正确方法吗?要么。有没有其他方法可以传递动态值(exec_date)?。
答案 0 :(得分:1)
您只需要通过以下步骤:
"""{{ macros.ds_format(ds, "%Y-%m-%d", "%d%m%Y") }}"""
一个例子是https://stackoverflow.com/a/52137676/5691525
已编辑:
如果您只想使用有效日期,为什么不使用以下代码:
EXEC_DATE = "{{ execution_date.strftime('"%d%m%Y"') }}"
如果您只想使用变量,为什么还要使用jinja?只需使用普通的Python datetime
就可以在这篇文章中看到:How do I turn a python datetime into a string, with readable format date?
答案 1 :(得分:0)
只使用{{ds_nodash}}难道不是很简单吗?