python - 使用 Jinja 忽略错误,保持代码完整
问题描述
我正在尝试在 Python 脚本中呈现 Jinja 文件。该文件具有三种类型的指令 -
- 典型的 for 循环
- 进口说明
- 从导入运行宏
1)我想要的只是扁平化的for循环。2) 为了避免导入失败,我将 forgivingLoader 子类化。3)但是,当它被调用时,我在绕过导入时遇到了问题。我尝试了 2 种不同的方法 - 子类 unDefined 但{{ abc.callf("arg1", "arg2") }}
被替换,arg1,arg2
因为 unDefined 无法访问调用函数,只能访问参数。或者,当我使用 DebugUndefined(它也是 unDefined 的子类)时,因为导入静默失败,它无法找到abc.callf
下面是我所针对的示例输入和预期输出。有人可以帮我吗?谢谢!
输入:
Starting
{% import "abc.yml" as abc %}
{{ abc.callf("arg1", "arg2") }}
{% set forloopvar = ["var1", "var2"] %}
{% for var in forloopvar %}
{{ var }}here
{% endfor %}
the end
预期输出:
Starting
{% import "abc.yml" as abc %}
{{ abc.callf("arg1", "arg2") }}
var1here
var2here
the end
解决方案
推荐阅读
- plsql - PLSQL 用多个集合更新多行
- excel - 排序功能正在崩溃文件
- java - 使用嵌套的 if 条件编写递归下降解析器
- ruby-on-rails - Rails 6 中类似 Redmine 的应用程序插件系统
- powershell - 用于在 IIS 高级日志记录的日志定义中启用日志记录字段的 Powershell 命令
- css - 我想用一个额外的类包围我所有的 scss 生成的 css
- sed - Makefile:在 .txt 文件中查找和替换文本
- c# - 如何修复 Entity Framework Core 2.0 中的 n+1 问题?
- java - JPA / Hibernate - @OneToOne 和 @Where 不工作 - 那么现在呢?
- r - R 如何根据先前的值以与时间相关的方式估算缺失值?