Tutorial

🐍 Python으로 JSON 검증하기 (JSON 검증기 튜토리얼)

Python의 내장 json 모듈과 서드파티 jsonschema 라이브러리를 사용하여 JSON 형식과 구조를 검증하는 방법을 배웁니다. 완전한 코드 예제와 모범 사례를 포함합니다.

2025-10-135 min read

JSON 검증이란?

웹 개발과 데이터 상호작용에서 JSON(JavaScript Object Notation)은 가장 일반적으로 사용되는 데이터 형식 중 하나입니다.

API 통신, 설정 파일, 로그 저장 등의 시나리오에서 사용됩니다.

하지만 개발 과정에서 다음과 같은 문제를 자주 만납니다:

  • • JSON 파일 형식 오류;
  • • 괄호가 닫히지 않음;
  • • 문자열 따옴표 누락;
  • • 불필요한 쉼표 등.

이러한 오류는 프로그램이 JSON 데이터를 파싱할 수 없게 만들므로, 실제 사용 전에 JSON 형식이 올바른지 검증해야 합니다.


Python으로 JSON 형식 검증하기

Python에는 매우 실용적인 내장 모듈인 json이 있어 JSON 로딩과 검증을 쉽게 수행할 수 있습니다.

✅ 예제 1: 기본 검증

import json

def validate_json(json_string):
    try:
        json.loads(json_string)
        print("✅ JSON 형식이 올바릅니다!")
    except json.JSONDecodeError as e:
        print("❌ JSON 형식 오류:", e)

# 예제 JSON
data = '{"name": "Alice", "age": 25}'
validate_json(data)

실행 결과:

✅ JSON 형식이 올바릅니다!

입력 형식이 잘못된 경우, 예를 들어:

data = '{"name": "Alice", "age": 25,}'  # 불필요한 쉼표
validate_json(data)

결과:

❌ JSON 형식 오류: Expecting property name enclosed in double quotes: line 1 column 28 (char 27)


✅ 예제 2: JSON 파일 검증

import json

def validate_json_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as f:
        try:
            json.load(f)
            print(f"✅ 파일 {file_path}의 JSON 형식이 올바릅니다!")
        except json.JSONDecodeError as e:
            print(f"❌ {file_path} 형식 오류: {e}")

# 호출
validate_json_file('data.json')

이 스크립트는 자동으로 파일을 읽고 내용이 유효한 JSON인지 검증합니다.


향상된 검증: 구조와 필드 확인

구문의 정확성 외에도, 때로는 JSON의 구조가 예상과 일치하는지도 검증하고 싶을 수 있습니다. 예를 들어 name, age, email 필드가 필수여야 한다는 것처럼요.

이를 위해 서드파티 라이브러리 jsonschema를 사용할 수 있습니다.

설치:

pip install jsonschema

예제:

from jsonschema import validate, ValidationError

# 데이터 구조 정의
schema = {
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "integer"},
        "email": {"type": "string"}
    },
    "required": ["name", "age"]
}

# 테스트 데이터
data = {"name": "Alice", "age": 25}

try:
    validate(instance=data, schema=schema)
    print("✅ JSON 데이터 구조가 유효합니다!")
except ValidationError as e:
    print("❌ JSON 구조 오류:", e.message)

실행 결과:

✅ JSON 데이터 구조가 유효합니다!

필드가 누락되었거나 타입이 잘못된 경우, 명확한 오류 메시지가 표시됩니다.


완전한 예제: 파일 일괄 검증기

import os
import json

def validate_json_files(folder):
    for file in os.listdir(folder):
        if file.endswith('.json'):
            path = os.path.join(folder, file)
            try:
                with open(path, 'r', encoding='utf-8') as f:
                    json.load(f)
                print(f"✅ {file} 검증 통과")
            except json.JSONDecodeError as e:
                print(f"❌ {file} 형식 오류: {e}")

# 현재 디렉토리의 모든 JSON 파일을 일괄 검증
validate_json_files(".")


결론

Python으로 JSON을 검증하는 것은 단순하고 효율적일 뿐만 아니라, 자동화된 테스트, 데이터 가져오기 등의 워크플로우와도 통합할 수 있습니다.

프로젝트에서 JSON 검증을 독립적인 단계로 사용하여 프로덕션 환경에서 형식 오류로 인한 인터페이스 예외를 피할 수 있습니다.

스크립트를 수동으로 실행하고 싶지 않다면, 온라인 도구를 직접 사용할 수도 있습니다:

👉 JSON 검증기 온라인 도구

지원 기능:

  • • 온라인 포맷팅과 검증
  • • 원클릭 미화와 압축
  • • CSV / XML로 변환
  • • 일반적인 구문 오류 자동 수정


🔖 관련 기사


JSON Work 팀 2025년 1월 15일

JSON Work 팀

개발자에게 최고의 JSON 처리 도구를 제공하는 데 전념

관련 게시물

더 많은 게시물이 곧 출시됩니다...

블로그로 돌아가기

관련 도구

자주 묻는 질문

업데이트 확인 방법, 다루는 주제, 제안 방법입니다.

새 글을 빠르게 보려면?

이 블로그 목록을 북마크하고 홈·도구 허브의 가이드 영역도 확인하세요. 글 읽기에 가입이나 메일 구독이 필요 없습니다.

어떤 주제를 다루나요?

JSON 검증, 포맷, 변환, 디버깅 흐름과 JSON Work 업데이트이며, 사이트의 무료 브라우저 도구와 맞물립니다.

튜토리얼 주제를 제안할 수 있나요?

가능합니다. About 페이지나 GitHub로 연락 주세요. 실제 연동·디버깅에 도움이 되는 주제를 우선합니다.

도움이 필요하신가요?