首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python中的Yaml合并

Python中的Yaml合并
EN

Stack Overflow用户
提问于 2009-05-05 03:31:42
回答 1查看 11.6K关注 0票数 13

因此,我正在考虑让自己(当然还有任何愿意使用它的人)在Python中为Pygame创建一个小的样板程序库。我想要一个系统,其中的应用程序设置是提供了一个yaml文件。

所以我在想,如果这个库提供一个默认的yaml树,并将它与用户提供的yaml树合并在一起,那将是很有用的。出于可用性的考虑,我想知道是否有任何人可以预测一个例程,其中:

在用户提供的yaml与默认yaml重叠的树中,用户提供的分支将替换库提供的分支。

在用户提供的yaml不与默认树重叠的任何情况下,默认树仍然存在。

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

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

EN

回答 1

Stack Overflow用户

发布于 2009-05-05 03:46:18

您可以使用PyYAML解析文件,然后使用以下函数合并两棵树:

代码语言:javascript
运行
复制
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

或者,您可以在调用此函数之前对用户树执行deep-copy

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/823196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档