새 글을 빠르게 보려면?
이 블로그 목록을 북마크하고 홈·도구 허브의 가이드 영역도 확인하세요. 글 읽기에 가입이나 메일 구독이 필요 없습니다.
Python의 내장 json 모듈과 서드파티 jsonschema 라이브러리를 사용하여 JSON 형식과 구조를 검증하는 방법을 배웁니다. 완전한 코드 예제와 모범 사례를 포함합니다.
웹 개발과 데이터 상호작용에서 JSON(JavaScript Object Notation)은 가장 일반적으로 사용되는 데이터 형식 중 하나입니다.
API 통신, 설정 파일, 로그 저장 등의 시나리오에서 사용됩니다.
하지만 개발 과정에서 다음과 같은 문제를 자주 만납니다:
이러한 오류는 프로그램이 JSON 데이터를 파싱할 수 없게 만들므로, 실제 사용 전에 JSON 형식이 올바른지 검증해야 합니다.
Python에는 매우 실용적인 내장 모듈인 json이 있어 JSON 로딩과 검증을 쉽게 수행할 수 있습니다.
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)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 jsonschemafrom 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 처리 도구를 제공하는 데 전념
더 많은 게시물이 곧 출시됩니다...
블로그로 돌아가기업데이트 확인 방법, 다루는 주제, 제안 방법입니다.
이 블로그 목록을 북마크하고 홈·도구 허브의 가이드 영역도 확인하세요. 글 읽기에 가입이나 메일 구독이 필요 없습니다.
JSON 검증, 포맷, 변환, 디버깅 흐름과 JSON Work 업데이트이며, 사이트의 무료 브라우저 도구와 맞물립니다.
가능합니다. About 페이지나 GitHub로 연락 주세요. 실제 연동·디버깅에 도움이 되는 주제를 우선합니다.