在 Python 中加载与 Jinja2 嵌套的 YAML

2023-12-23

我有一个 YAML 文件(all.yaml)看起来像:

...
var1: val1
var2: val2
var3: {{var1}}-{{var2}}.txt
...

如果我像这样在 Python 中加载它:

import yaml

f = open('all.yaml')
dataMap = yaml.safe_load(f)
f.close()
print(dataMap["var3"])

输出是{{var1}}-{{var2}}.txt并不是val1-val2.txt.

是否可以用值替换嵌套变量?

我尝试加载它:

import jinja2
templateLoader = jinja2.FileSystemLoader( searchpath="/path/to/dir" )
templateEnv = jinja2.Environment( loader=templateLoader )
TEMPLATE_FILE = "all.yaml"
template = templateEnv.get_template( TEMPLATE_FILE )

不再抛出异常,现在我陷入困境,必须研究如何继续。


首先定义一个Undefined类并加载 yaml 以获取已知值。然后再次加载并使用已知值进行渲染。

#!/usr/bin/env python

import yaml
from jinja2 import Template, Undefined

str1 = '''var1: val1
var2: val2
var3: {{var1}}-{{var2}}.txt
'''

class NullUndefined(Undefined):
  def __getattr__(self, key):
    return ''

t = Template(str1, undefined=NullUndefined)
c = yaml.safe_load(t.render())

print t.render(c)

Run it:

$ ./test.py
var1: val1
var2: val2
var3: val1-val2.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中加载与 Jinja2 嵌套的 YAML 的相关文章

  • 为什么从 Pandas 1.0 中删除了日期时间?

    我在 pandas 中处理大量数据分析并每天使用 pandas datetime 最近我收到警告 FutureWarning pandas datetime 类已弃用 并将在未来版本中从 pandas 中删除 改为从 datetime 模块
  • 与区域指示符字符类匹配的 python 正则表达式

    我在 Mac 上使用 python 2 7 10 表情符号中的标志由一对表示区域指示符号 https en wikipedia org wiki Regional Indicator Symbol 我想编写一个 python 正则表达式来在
  • 元组有什么用?

    我现在正在学习 Python 课程 我们刚刚介绍了元组作为数据类型之一 我阅读了它的维基百科页面 但是 我无法弄清楚这种数据类型在实践中会有什么用处 我可以提供一些需要一组不可变数字的示例吗 也许是在 Python 中 这与列表有何不同 每
  • 在 django ORM 中查询时如何将 char 转换为整数?

    最近开始使用 Django ORM 我想执行这个查询 select student id from students where student id like 97318 order by CAST student id as UNSIG
  • 如何使用 opencv.omnidir 模块对鱼眼图像进行去扭曲

    我正在尝试使用全向模块 http docs opencv org trunk db dd2 namespacecv 1 1omnidir html用于对鱼眼图像进行扭曲处理Python 我正在尝试适应这一点C 教程 http docs op
  • 用枢轴点拟合曲线 Python

    我有下面的图 我想用 2 条线来拟合它 使用 python 我设法适应上半部分 def func x a b x np array x return a x b popt pcov curve fit func up x up y 我想用另
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 使用 xlrd 打开 BytesIO (xlsx)

    我正在使用 Django 需要读取上传的 xlsx 文件的工作表和单元格 使用 xlrd 应该可以 但因为文件必须保留在内存中并且可能不会保存到我不知道如何继续的位置 本例中的起点是一个带有上传输入和提交按钮的网页 提交后 文件被捕获req
  • 如何在 Python 中解析和比较 ISO 8601 持续时间? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 Python v2 库 它允许我解析和比较 ISO 8601 持续时间may处于不同单
  • “隐藏”内置类对象、函数、代码等的名称和性质[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我很好奇模块中存在的类builtins无法直接访问的 例如 type lambda 0 name function of module
  • pyspark 将 twitter json 流式传输到 DF

    我正在从事集成工作spark streaming with twitter using pythonAPI 我看到的大多数示例或代码片段和博客是他们从Twitter JSON文件进行最终处理 但根据我的用例 我需要所有字段twitter J
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • 仅第一个加载的 Django 站点有效

    我最近向 stackoverflow 提交了一个问题 标题为使用mod wsgi在apache上多次请求后Django无限加载 https stackoverflow com questions 71705909 django infini
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • 根据列 value_counts 过滤数据框(pandas)

    我是第一次尝试熊猫 我有一个包含两列的数据框 user id and string 每个 user id 可能有多个字符串 因此会多次出现在数据帧中 我想从中导出另一个数据框 一个只有那些user ids列出至少有 2 个或更多string
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解
  • 更改 Tk 标签小部件中单个单词的颜色

    我想更改 Tkinter 标签小部件中单个单词的字体颜色 我知道可以使用文本小部件来实现与我想要完成的类似的事情 例如使单词 YELLOW 显示为黄色 self text tag config tag yel fg clr yellow s
  • Kivy - 单击按钮时编辑标签

    我希望 Button1 在单击时编辑标签 etykietka 但我不知道如何操作 你有什么想法吗 class Zastepstwa App def build self lista WebOps getList layout BoxLayo

随机推荐

  • Java 中的 $0(程序名称)?发现主类?

    有没有办法找到Java中运行的程序的名称 main 方法的类就足够了 尝试这个 StackTraceElement stack Thread currentThread getStackTrace StackTraceElement mai
  • 如何开始在 C# 中创建 BHO?

    我需要在 C 中创建一个 BHO 除了典型的 Microsoft C 示例之外 还有其他可用的文档吗 我该如何开始 谢谢 这实际上并没有那么困难 但是您必须亲自动手使用 COM 互操作 我最近刚刚为业务线应用程序执行了此操作 基本上 您必须
  • 设置 Angular cli 生产构建 tfs

    在本地 我的项目使用 ng build prod 构建得很好 但是如果我使用以下 powershell 脚本在 tfs 团队基础服务器 上设置它 它会失败并出现一些错误 ps脚本 npm install npm run ng build p
  • 为什么子类无法访问受保护的方法?

    考虑以下代码片段 package vehicle public abstract class AbstractVehicle protected int speedFactor return 5 package car import veh
  • 验证后仍无法创建基于域的存储桶

    我的帐户可以访问顶级域的 Google 网站站长工具 并且我还验证了子域以及子子域 但是当我尝试使用我应该验证的任何域创建新存储桶时 我收到 您尝试创建的存储桶是另一个用户拥有的域名 我还缺少什么吗 听起来创建存储桶的帐户与拥有域的帐户不同
  • 从异常中恢复上下文

    考虑以下资源管理类 class FooResouce public explicit FooResouce T arg to construct with m foo create foo resouce arg to construct
  • NSDate 等人在 iOS 4.2 上遭遇困境

    我相信 NSDate NSCalendar 在 iOS 4 2 上有一两个错误 NSDate date description 始终使用 GMT 打印 即忽略本地时区设置 之前已报告过 但包含在内是为了更好地解释下面的输出 calendar
  • .BMP 文件可以存储在 HTA (HTML/VBScript) 中吗?

    我注意到在 FireFox 书签的备份中 显示在每个条目左侧的图标作为字符流保存在 A 标记中 例如 ICON data image png base64 iVBOR 删除数据以缩短示例 rkJggg 我有 3 个 BMP 文件 2 are
  • 如何在xsl中正确调整表格单元格

    我正在尝试使用 xsl FOP 将 XML 数据放入表格格式 但无法完全完成 因为当单元格中没有文本时单元格会重叠 这是我的 xsl 代码
  • 如何从 Jena 获取嵌套的 RDF/XML?

    我需要创建如下所示的 RDF
  • PhotoChooserTask的使用

    我的 Windows Phone 应用程序中有一个图像列表 作为内容 如何使用 PhotoChooserTask 看到它们 这是通过单击按钮触发任务的基本且粗略的示例 下面的代码使用按钮单击事件来触发 PhotoChooserTask 然后
  • 从字符串中删除所有 html 标签的最佳方法是什么?

    使用 PHP 给定一个字符串 例如 this is a strong string strong 我需要一个函数来删除所有 html 标签 以便输出为 this is a string 有任何想法吗 提前致谢 PHP 有一个内置函数可以完全
  • T-SQL 查询,其中列仅包含数字[重复]

    这个问题在这里已经有答案了 可能的重复 如何仅获取数字列值 https stackoverflow com questions 1858867 how to get only numeric column values 我正在尝试编写一个
  • 如何从本机应用程序获取窗口打开/关闭/最小化消息?

    为这个标题写一个好的标题是很困难的 我正在开发一个 WPF 应用程序 它需要了解系统上所有其他打开的窗口的存在 我可以通过调用本机 EnumWindows 方法来完成此操作 并且我可以调用其他本机方法来过滤出我感兴趣的窗口 这效果很好 我遇
  • 如何捕获 NoSuchElementException?

    我的课堂作业是编写一个程序 让用户输入一组数值 如果用户输入的值不是数字 则程序应该给用户 2 次机会正确输入数字 在这两次机会之后 停止要求输入并打印迄今为止正确输入的所有值的总和 事实上 我的代码不能正常工作 当输入第一个非数字时 程序
  • 运算符<<重载隐藏其他

    我有一个奇怪的运算符 include
  • 分步更改 iPad Pro 的字体大小

    我有一个应用程序 仅适用于横向模式下的 iPad 屏幕设计完全在 IB 中通过自动布局完成 现在我想实现以下行为 在 iPad Pro 12 英寸上时 所有标签的字体大小应为 48 对于所有较小的 iPad 尺寸 字体大小应为 32 我在
  • 无法将foreign_key_checks设置为0/关闭

    我有一个小数据库 我刚刚添加了一些表并设置了外键约束 现在我想上传一些数据并阅读了有关使用以下内容暂时关闭检查的信息 SET FOREIGN KEY CHECKS 0 我正在从 SQL 窗口运行此查询 我收到一条 成功 消息 但是当我检查设
  • Flex 3中如何防止组件被拖出舞台

    我认为这个问题有一个简单的解决方案 只是不够简单让我找到它 问题 如何限制 Flex 3 中的 TitleWindow 被拖离屏幕 舞台 有没有办法将TitleWindow限制在查看区域 示例 假设我有一个占据 100 屏幕的应用程序 接下
  • 在 Python 中加载与 Jinja2 嵌套的 YAML

    我有一个 YAML 文件 all yaml 看起来像 var1 val1 var2 val2 var3 var1 var2 txt 如果我像这样在 Python 中加载它 import yaml f open all yaml dataMa