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

Airflow中字符串转字典失败及自定义宏调用异常问题求助

Airflow密钥处理与自定义宏问题解决

问题1:非标准JSON格式字符串转字典

你的输出字符串是Python字典字面量格式(键未加双引号),不符合标准JSON规范,因此json.loads()无法解析。推荐使用Python内置的ast.literal_eval()方法,它可以安全解析Python字面量结构,无需拆分字符串,是更规范的解决方案。

示例代码:

import ast

# 你的输出字符串
secret_str = "{account:some-value,user:some-value,password:some-value}"
# 转换为字典
secret_dict = ast.literal_eval(secret_str)

ast.literal_eval()会正确识别这种无引号键的字典结构,返回标准Python字典,比split等取巧方法更可靠。

问题2:自定义宏在BashOperator中未执行

错误原因是模板中仅引用了函数对象{{ get_schema }},没有触发函数执行。Airflow自定义宏函数需要通过加括号调用来执行,修改BashOperator的bash_command即可:

修改后的代码片段:

BashOperator(
    task_id="bash_command",
    bash_command="export account={{ get_schema() }};"
)

额外补充两点注意事项:

  • 如果AWS Secrets Manager返回的SecretString是标准JSON格式,建议在read_from_aws_sm_fn中先解析该字符串,再返回具体需要的字段(比如单独返回account的值),避免导出整个JSON字符串。
  • 确保Airflow运行环境已配置好AWS权限,能够正常访问目标Secrets Manager资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 20:32:49