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
我找不到一个简单的方法来做到这一点..
我有一个大型复杂的 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