繁体   English   中英

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

[英]Python - Create a single Json from multiple Yaml file of a directory

我在一个目录中有多个 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM