edman.json_manager のソースコード

import sys
import os
from datetime import datetime
from pathlib import Path
from typing import Union
from bson.json_util import dumps
from edman.exceptions import EdmanFormatError


[ドキュメント]class JsonManager: """ JSONファイルの取扱いクラス """
[ドキュメント] @staticmethod def save(report_data: dict, path: Union[str, Path], name: str, date=False) -> None: """ JSONファイルに書き出し :param dict report_data: 対象の辞書データ :param path: ファイルパス :type path: str or Path :param str name: ファイル名 :param bool date: 日付 ファイル名先頭に追加 :return: None """ if not isinstance(report_data, dict): raise EdmanFormatError('Not Dict Data') date_str = '' if date: date_str = datetime.today().strftime("%Y%m%d%H%M%S%f") + '_' filename = date_str + name + '.json' p = path if isinstance(path, Path) else Path(path) savepath = p / filename with savepath.open("w", encoding='utf8') as file: file.write(dumps(report_data, ensure_ascii=False, indent=4)) file.flush() os.fsync(file.fileno()) sys.stdout.write('\r\n') # tqdmとの干渉を防ぐための改行 print('saved:' + str(savepath))