Python 中的 Yaml 合并

2024-03-01

所以我正在考虑用 Python 为 Pygame 制作一个小样板库(当然还有任何愿意使用它的人)。我想要一个通过 yaml 文件提供应用程序设置的系统。

因此,我认为如果库提供默认的 yaml 树并将其与用户提供的树合并,将会很有用。为了可用性起见,我想知道是否有人可以预测一个例程:

在任何情况下,在用户提供的 yaml 与默认值重叠的树中,用户提供的分支都会替换库提供的分支。

在用户提供的 yaml 不与默认树重叠的任何情况下,默认树都会保留。

用户提供的 yaml 提供的树中任何多余的分支都会被附加。

我知道这个解释很冗长,因为它可能很清楚我的要求。我想知道免费获得是否有点多。


你可以使用PyYAML http://pyyaml.org/用于解析文件,然后使用以下函数来合并两棵树:

def merge(user, default):
    if isinstance(user,dict) and isinstance(default,dict):
        for k,v in default.iteritems():
            if k not in user:
                user[k] = v
            else:
                user[k] = merge(user[k],v)
    return user

或者,你可以做一个深拷贝 http://docs.python.org/library/copy.html调用此函数之前的用户树。

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

Python 中的 Yaml 合并 的相关文章

  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • 为 pandas 数据透视表中的每个值列定义 aggfunc

    试图生成具有多个 值 列的数据透视表 我知道我可以使用 aggfunc 按照我想要的方式聚合值 但是如果我不想对两列求和或求平均值 而是想要一列的总和 同时求另一列的平均值 该怎么办 那么使用 pandas 可以做到这一点吗 df pd D
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • Pandas Dataframe 中 bool 值的条件前向填充

    问题 如何转发 fill boolTruepandas 数据框中的值 如果是当天的第一个条目 True 到一天结束时 请参阅以下示例和所需的输出 Data import pandas as pd import numpy as np df
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • 戳堆栈

    我试图了解堆栈到底是如何工作的 所以我将在这里重新创建一个带有一些问题的小示例 假设我在 ASM 中有一段小代码 它执行以下操作 这一切都是x86 intel语法 Linux push ebp mov ebp esp sub esp 16
  • 通用视图模型?

    我想知道尝试创建一个采用通用视图模型的视图是否是一种好的做法 我想知道这一点 因为有人提到他预计必须执行大量重复代码 除非他开始制作通用视图和通用视图模型 所以基本上视图就像一组控件 一个视图可能有 2 个控件 例如文本框和单选按钮 另一个
  • pandas 中的 .sum() 方法给出不一致的结果

    我有一个大的 DataFrame 大约 4e 07 行 总结时 我得到2 显着不同的结果我是否做总和之前或之后列选择 另外 类型变化从 float32 到 float64 即使总数均低于 2 31 df col1 col2 col3 sum
  • 如何在同一个 HTML5 播放器中放大视频并切换视频流?

    我的视频将分为 4 个视频 首先 播放器将传输较低分辨率的原始视频 然后用户可以放大视频以查看更多细节 我需要播放器根据用户放大的位置传输 4 个视频之一 分辨率较高 我如何使用 VideoJS 或任何其他视频播放器来实现这一点 经过一番查
  • 为什么我的托管 Django 站点(alwaysdata)无法显示我的页面

    我已经将 Django 部署在总是数据网 http www alwaysdata com 这是我的主页http zjm1126 alwaysdata net http zjm1126 alwaysdata net 我改变index html
  • 在ctrlp + vim中使用ag

    我想将 ag 银色搜索器 与 ctrlp 和 vim 一起使用 我的 vimrc 中有这个 if executable ag set grepprg ag nogroup nocolor let g ctrlp user command a
  • 为什么 *[checked] 在使用 jQuery 的过滤方法时表现得像 :checked ?

    继从上一个问题 https stackoverflow com questions 8673201 why does checked not match a single checked input box 假设我在加载 jQuery 1
  • 使用动态文件名进行复制

    我正在尝试编写一个函数来将 csv 数据加载到表中 我希望输入参数是文件的路径 CREATE OR REPLACE FUNCTION public loaddata filepathname varchar RETURNS void AS
  • 如何检查 Lucene IndexWriter 实例是否有效/打开?

    抱歉这个简单的问题 但似乎没有任何明显的方法 根据文档 建议保留单个实例IndexWriter存储在内存中 可以一次又一次地用于更新 而不是为每次更改打开和关闭一个内存 这要昂贵得多 然而 文档还指出IndexWriter如果发生异常 例如
  • 我们可以在运行时使用语言选择 UI 本地化 WIX msi 和捆绑包吗?

    我们在 Wix 中创建了 MSI 和捆绑包 我需要对这两者进行本地化 以便弹出语言选择 GUI 并且用户可以在运行时选择语言 如果有人能在这方面帮助我 我将不胜感激 对于 MSI 我正在努力创建另一个引导程序 用于启动语言选择组合框 并使用
  • Kendo UI 网格过滤具有多个值的列

    我一直在使用过滤器在我的 KendoUI 网格上成功搜索 然而 一个新的应用程序有一些多值字段 我的过滤不起作用 它实际上似乎永远旋转 多值字段的示例 field rspPersons title Responsible Persons t
  • 如何使用 Moq 模拟 SqlDataReader - 更新

    我是最小起订量和设置模拟的新手 所以我可以得到一些帮助 如何使用 Moq 模拟 SqlDataReader Update 经过进一步测试 这是我目前所拥有的 private IDataReader MockIDataReader var m
  • 将 charset="utf-8" 添加到 HTML 链接元素有什么效果吗?

    我正在处理一个并非由我创作的 HTML 文档 它包含以下内容 以这种方式指定字符集有什么影响 还是字符集是由 Content Type 响应头确定的 The W3C says http www w3 org International qu
  • react-native-firebase crashlytics 未显示在 firebase 仪表板上

    我正在使用 firebase crashlytics 我这样做导致了崩溃 firebase crashlytics crash and I am not seeing the crash report on the firebase das
  • matlab图中的数据提示定制

    我有一个包含多个图的图表 每个图都来自不同的源文件 我希望数据提示告诉我 X Y 加上源文件的名称 长期以来 我最好的尝试 没有成功 是这样的 dcm datacursormode gcf datacursormode on set dcm
  • 画布下方的白色空白区域

    花了几个小时摆弄代码后 我遇到了一个问题 我创建了一个灰色的 HTML 画布 它将填满整个屏幕 并且它起作用了 但是 即使画布应该是屏幕上唯一可见的对象 当我向下滚动时 页面底部似乎仍然有一个小的白色空白区域 我已经知道这与身体无关 因为我
  • 在框架内打开 https 页面是否存在问题

    我以编程方式创建一个 html 报告 分为两个框架 如果用户随后单击右侧框架上的超链接 则该框架将被页面内容替换 这工作正常 但现在当我尝试链接到任何 Discogs 发布页面时 例如this one https www discogs c
  • 帮助解决密码复杂性正则表达式

    我使用以下正则表达式来验证密码复杂性 6 12 0 9 2 A Z 2 a z 2 简而言之 2个小写字母 2个大写字母 2个数字 最小长度为6 最大长度为12 当我使用最小长度时 除了最大长度之外 它工作得很好 例如 6 0 9 2 A
  • oracle sql 日期不晚于今天

    我需要显示一些数据 如果它是 新数据 更新数据 比方说 我将从发布日期列和更新列中获取这些数据 其中发布日期和更新日期都是时间戳 那么如果是新的日期如何计算呢 过去 24 小时 Where publish date gt sysdate 1
  • Python 中的 Yaml 合并

    所以我正在考虑用 Python 为 Pygame 制作一个小样板库 当然还有任何愿意使用它的人 我想要一个通过 yaml 文件提供应用程序设置的系统 因此 我认为如果库提供默认的 yaml 树并将其与用户提供的树合并 将会很有用 为了可用性