mangiucugna/json_repair

Repair malformed JSON from LLMs, APIs, logs, and user input in Python.

What it solves

json_repair는 LLM, API 또는 로그에서 데이터를 받을 때 흔히 발생하는 잘못된 JSON 문자열을 처리하도록 설계되었습니다. 누락된 따옴표, 잘못된 콤마 위치, 닫히지 않은 괄호, 불필요한 텍스트 등 일반적인 구문 오류를 수정하여 표준 JSON 파서(json.loads() 등)가 실패하는 상황을 방지합니다.

How it works

이 라이브러리는 BNF 정의를 기반으로 JSON을 파싱하고, 휴리스틱을 적용해 오류를 교정합니다. 누락된 괄호를 자동으로 추가하고, 따옴표가 없는 문자열에 따옴표를 삽입하며, 불필요한 공백이나 줄바꿈을 정리합니다. 기본적으로 먼저 표준 라이브러리의 json.loads() 로 엄격히 파싱을 시도하고, 실패할 경우에만 복구 파서로 넘어갑니다.

Who it’s for

LLM이 생성한 JSON에 의존하는 AI 애플리케이션을 개발하는 개발자와, 로그나 사용자 입력 등 신뢰성이 낮은 데이터 소스를 처리하면서 엄격한 JSON 준수가 보장되지 않는 경우에 적합합니다.

Highlights

  • Drop-in Replacement: json.loads()json.load()를 직접 대체하여 사용할 수 있습니다.
  • Schema-Guided Repair: JSON Schema 또는 Pydantic v2 모델을 지원해 누락된 값을 채우고, 스칼라를 강제 변환하며, 허용되지 않은 속성을 제거합니다.
  • Streaming Support: stream_stable 모드를 포함해 스트리밍 출력 중 부분 JSON을 안정적으로 유지합니다.
  • Strict Mode: strict=True 옵션을 제공해 구조적 문제가 있을 경우 복구하지 않고 오류를 발생시킵니다.
  • CLI Tool: 명령줄 인터페이스를 제공하여 JSON 파일을 복구하거나 stdin을 통해 데이터를 파이프할 수 있습니다.