You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Airflow 2.3.4从XCom字符串提取子串返回未知字符问题排查

故障原因分析

核心问题:混淆了Jinja模板字符串与实际Python变量

你写的代码里,fy变量存储的是未渲染的Jinja模板语法字符串,而非XCom返回的实际值:

  • 代码中fy = "{{ ti.xcom_pull(dag_id='" + DAG_ID + "', task_ids='fiscal_yr_week')[1][3] }}" 这一行,得到的是一个形如"{{ ti.xcom_pull(dag_id='your_dag_id', task_ids='fiscal_yr_week')[1][3] }}"的字符串,Airflow并没有对这个模板进行渲染——这段代码是在Python层面直接赋值,没有触发Jinja的模板解析逻辑。
  • 后续的xcom_yr = f"""{fy}"""只是对这个模板字符串做了无意义的格式化,结果还是原模板字符串。
  • 最后执行yr = xcom_yr[2:4]时,是对模板字符串本身切片:模板字符串的前几个字符是{{ ti...,索引2的位置是空格,索引3的位置是t,所以切片结果就是带空格的' t',这就是你看到的错误输出。

额外问题:XCom取值的索引逻辑错误

你代码里ti.xcom_pull(...)[1][3]的索引写法也存在问题:如果XCom返回的是字符串"2022",那么[1]会取到第二个字符'0',再调用[3]会直接报错(单个字符没有索引3);如果XCom返回的是嵌套结构,这个索引逻辑也需要重新确认,但这不是当前返回t的直接原因。

内容的提问来源于stack exchange,提问作者codninja0908

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 13:10:46