Source code for torchoutil.pyoutil.json

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import json
from pathlib import Path
from typing import Any, Optional, Union

from .io import _setup_path


[docs]def dump_json( data: Any, fpath: Union[str, Path, None] = None, *, overwrite: bool = True, make_parents: bool = True, # JSON dump kwargs indent: Optional[int] = 4, ensure_ascii: bool = False, **json_dump_kwds, ) -> str: """Dump content to JSON format.""" fpath = _setup_path(fpath, overwrite, make_parents) content = json.dumps( data, indent=indent, ensure_ascii=ensure_ascii, **json_dump_kwds, ) if fpath is not None: fpath.write_text(content) return content
[docs]def load_json(fpath: Union[str, Path], **json_load_kwds) -> Any: fpath = Path(fpath) content = fpath.read_text() return _parse_json(content)
def _parse_json(content: str, **json_load_kwds) -> Any: return json.loads(content, **json_load_kwds)