【问题标题】:Jinja template in Airflow always change value to StringAirflow 中的 Jinja 模板总是将值更改为字符串
【发布时间】:2022-01-21 10:38:31
【问题描述】:

我在 Airflow 中有一个自定义的运算符 my_previous_job,它返回一个 Python 列表。

在我的 DAG 定义中,我使用 jinja 模板引用它:

t_my_job = MyOperator(
    data=json.dumps({
        "jobId": f"{{{{ ti.xcom_pull(task_ids='my_previous_job', "f"key='return_value')}}}}",
    })
)

但是,f"{{{{ (ti.xcom_pull(task_ids='my_previous_job', "f"key='return_value')}}}})" 返回的值不是一个列表,而是一个包含列表的字符串。即

代替:

      ['a','b','c']

它返回一个字符串:

      "['a','b','c']"

我能做些什么来获取由my_previous_job 生成的列表而不是字符串?

【问题讨论】:

    标签: python jinja2 airflow


    【解决方案1】:

    对于 Airflow

    对于气流 >= 2.1.0: 支持将字段呈现为本机 Python 对象。 您需要在 DAG 对象中设置 render_template_as_native_obj=True。 您可以在docs 中了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-28
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多