Я пытаюсь использовать шаблоны jinja, чтобы проанализировать некоторые json, найденные в xcom, в словарь.Обратите внимание, что Operator
и templated_field
являются псевдо-кодом.
def xcom_from_json(xcom):
xcom_loaded = json.loads(xcom)
logging.info(pformat(f'xcom loaded: {xcom_loaded}', indent=3))
return xcom_loaded
PythonOperator(python_callable=some_callable,
op_args=[f'{{{{ (ti.xcom_pull("{task_id}") | xcom_from_json)["data"]["stats"] }}}}'])
Выше работает почти.В методе some_callable
я получаю анализируемое дзиндзя, но оно получается как строковый, а не необработанный.Это не имеет смысла, потому что вы можете видеть структуру, проходящую как dict в шаблоне jinja.Джинджа преобразует в строку все, что выходит из шаблона?Если да, есть ли способ этого не делать?