Python 从复杂的 YAML 文件创建部分 YAML 文件

Python creating partial YAML file from a complexYAML file

我找不到一个简单的方法来做到这一点..

我有一个大型复杂的 yaml 文件,我想加载它并只将几个密钥写入新的 yaml 文件。

例如:

现有:

a:
  bsect: 
    thing: one
ab:
  bbsect:
    morething: more 
thisone: dbname
ac:
  ccc:
    cccthing: here
bd:
  bbb:
    bbbthing: again

所以我使用 import yaml 加载 yaml 文件,并使用以下方法加载:cfg = yaml.load(file) within a with open.

我想用 cfg[ab] 和 cfg[thisone] 创建一个新的 yaml 文件

但是当我使用 yaml.dump 创建 yaml 文件时,我显然得到了没有密钥的 cfg[ab] 和 cfg[thisone] 的内容,它看起来像这样。

bbsect:
   morething: more
dbname.

这是有道理的,但最终得到包含以下内容的新 yaml 文件的最佳方法是什么:

ab:
  bbsect:
    morething: more 
thisone: dbname

我希望这是有道理的。

提前致谢。

您可以创建一个新的空白配置并向其中写入数据。

x = '''
a:
  bsect: 
    thing: one
ab:
  bbsect:
    morething: more 
thisone: dbname
ac:
  ccc:
    cccthing: here
bd:
  bbb:
    bbbthing: again
'''
import yaml
cfg = yaml.load(x)
new_cfg = {}
new_cfg['ab'] = cfg['ab']
new_cfg['thisone'] = cfg['thisone']
yaml.dump(new_cfg, default_flow_style=False)

输出:

ab:
  bbsect:
    morething: more
thisone: dbname