yaml 转json

.yaml文件转换为.json

你正在重写一个使用YAML作为配置语言的应用程序。公司现在已经把JSON定为了标准,因此现在有一堆.yaml文件需要转换成.json。须编写一个脚本,然后获取一个目录并将每个.yaml文件转换为相应的.json文件(因此database.yaml会变成database.json,内容是有效的JSON)。

以下是一个用 Python 编写的脚本,可以将指定目录中的所有 .yaml 文件转换为 .json 文件:

脚本说明

  1. 使用 osglob 模块遍历目录中的 .yaml 文件。
  2. 使用 PyYAML 加载 YAML 文件内容。
  3. 使用 json 将内容保存为 JSON 格式。

脚本代码

import os
import yaml
import json
from pathlib import Path

def convert_yaml_to_json(directory):
    # 确保目录存在
    if not os.path.isdir(directory):
        print(f"目录 '{directory}' 不存在。请提供有效路径。")
        return

    # 遍历目录中的所有 .yaml 文件
    for yaml_file in Path(directory).rglob('*.yaml'):
        try:
            # 读取 YAML 文件内容
            with open(yaml_file, 'r', encoding='utf-8') as yf:
                data = yaml.safe_load(yf)

            # 构造对应的 JSON 文件路径
            json_file = yaml_file.with_suffix('.json')

            # 将数据写入 JSON 文件
            with open(json_file, 'w', encoding='utf-8') as jf:
                json.dump(data, jf, indent=4, ensure_ascii=False)

            print(f"已成功将 '{yaml_file}' 转换为 '{json_file}'")
        except Exception as e:
            print(f"处理文件 '{yaml_file}' 时出错: {e}")

# 示例调用
directory_path = input("请输入包含 YAML 文件的目录路径: ").strip()
convert_yaml_to_json(directory_path)

使用说明

  1. 将上述代码保存为脚本文件(例如 convert_yaml_to_json.py)。

  2. 确保已安装

    PyYAML
    

    模块,可以通过以下命令安装:

    pip install pyyaml
    
  3. 运行脚本,并输入包含 .yaml 文件的目录路径。

  4. 转换后的 .json 文件会保存在同一目录下,与原 .yaml 文件同名。



欢迎关注公-众-号【TaonyDaily】、留言、评论,一起学习。

公众号

Don’t reinvent the wheel, library code is there to help.

文章来源:刘俊涛的博客


若有帮助到您,欢迎点赞、转发、支持,您的支持是对我坚持最好的肯定(_)

posted @   刘俊涛的博客  阅读(64)  评论(0编辑  收藏  举报
Servbay
点击右上角即可分享
微信分享提示