Python -从一个目录的多个Yaml文件创建一个Json



我在一个目录中有多个yaml文件,并希望从每个文件中选择节点创建一个json,即我们只需要从一个文件中2到4个json节点,而不是全部。

我能够读取Yaml并转换为json,但不知道如何从每个json/Yaml文件中选择所需的节点并创建最终的单个json。

可以有人建议我如何选择节点从所有的Yaml文件和追加到一个新的Json文件?

使用下面的代码,我能够将所有YAML文件转换为单独的Json文件,但不知道如何从每个选择节点并创建一个新的Json文件。

import yaml
import glob
files = glob.glob("C:\Users\test\*.yaml")  # list of all .yaml files in a directory

def read_yaml_file(filename):
with open(filename, 'r') as stream:
try:
print(yaml.safe_load(stream))
except yaml.YAMLError as exc:
print(exc)

for file in files:
data = read_yaml_file(file)

如果不知道数据结构和你想要实现的目标,很难给你建议,但这里有一个例子,从所有yaml文件中创建所有node_name键的json列表:

import yaml
import json
import glob
files = glob.glob("C:\Users\test\*.yaml")  # list of all .yaml files in a directory

def read_yaml_file(filename):
with open(filename, 'r') as stream:
try:
return yaml.safe_load(stream)
except yaml.YAMLError as exc:
print(exc)
return None
yaml_files_data = [read_yaml_file(f) for f in files]
json_data = []
for yaml_data in yaml_files_data:
if yaml_data is None: # error occured in `read_yaml_file`
continue
json_data.append(yaml_data["node_name"])
with open("output.json", "w") as file:
json.dump(json_data, file)

相关内容

  • 没有找到相关文章

最新更新