Skill-BidCreater/scripts/write_large_json.py
2026-03-09 22:20:38 +08:00

38 lines
1.1 KiB
Python

from __future__ import annotations
import argparse
import json
from pathlib import Path
from typing import Any
from common import write_json_atomic
def load_json_input(path: Path) -> Any:
if not path.exists():
raise FileNotFoundError(f"未找到输入 JSON 文件: {path}")
try:
return json.loads(path.read_text(encoding="utf-8-sig"))
except json.JSONDecodeError as exc:
raise ValueError(f"输入文件不是合法 JSON: {path}") from exc
def write_large_json(input_path: Path, output_path: Path) -> None:
data = load_json_input(input_path)
write_json_atomic(output_path, data, indent=2, ensure_ascii=False)
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument("--input", required=True, help="UTF-8/UTF-8-SIG JSON 源文件路径")
parser.add_argument("--out", required=True, help="目标 JSON 文件路径")
args = parser.parse_args()
input_path = Path(args.input).resolve()
output_path = Path(args.out).resolve()
write_large_json(input_path, output_path)
if __name__ == "__main__":
main()