UTILS.
100% 브라우저 내 실행
🐍

JSON을 Pydantic 모델로 변환

JSON 샘플을 Python Pydantic v2 모델 클래스로 변환합니다. @dataclass 또는 TypedDict 출력과 snake_case 필드 별칭 토글을 제공합니다.

출력

이 도구에 대하여

JSON을 Pydantic 모델로 변환 도구는 붙여넣은 JSON 샘플을 Python 모델 클래스로 변환합니다. Python과 FastAPI 개발자는 예시 API 응답으로부터 Pydantic 모델을 끊임없이 스캐폴딩하는데, 이 변환기가 브라우저에서 즉시 처리합니다. JSON을 파싱하고 Python 타입을 재귀적으로 추론하며 객체마다 클래스 하나를 출력합니다. 문자열은 str, ISO 날짜-시간 문자열은 datetime, 날짜만 있는 문자열은 date, 정수는 int, 그 외 숫자는 float, 불리언은 bool, 배열은 List[T], 중첩 객체는 PascalCase로 이름 붙은 각자의 모델 클래스가 됩니다.

모든 파싱과 생성은 JSON.parse와 순수 JavaScript로 로컬에서 이루어지므로 붙여넣은 내용이 기기를 떠나지 않습니다. 자식 클래스는 이를 참조하는 클래스보다 먼저 출력되며(위상 순서), 헤더는 실제로 사용되는 것만 import합니다. pydantic에서 BaseModel과 Field, typing에서 Optional / List / Union / Any, 그리고 필요할 때 datetime / date를 가져옵니다. from __future__ import annotations는 순서에 상관없이 전방 참조가 작동하도록 항상 포함됩니다.

일부 형제 객체에서 빠져 있거나 null로 관찰된 키는 Optional[T] = None이 됩니다. 출력 모드 토글은 Pydantic v2 BaseModel(기본값), 표준 라이브러리 @dataclass, typing.TypedDict 사이를 전환합니다. snake_case 필드를 켜면 camelCase나 유효하지 않은 키의 이름이 바뀌고 Field(alias="originalKey")가 자동으로 추가되어 모델이 여전히 원본 JSON을 파싱합니다. 코드를 복사하거나 .py 파일로 다운로드하세요.

자주 묻는 질문

어떤 Python 타입이 추론되나요?
문자열은 str, ISO 날짜-시간은 datetime, 날짜만 있는 것은 date, 정수는 int, 정수가 아닌 숫자는 float, 불리언은 bool, 배열은 요소에서 병합된 T로 List[T], 객체는 중첩 BaseModel 클래스가 됩니다. null이거나 누락된 값은 Optional[T] = None이 됩니다.
dataclass나 TypedDict로 대신 얻을 수 있나요?
네. 출력 모드 토글은 Pydantic v2 BaseModel(기본값), dataclasses import가 있는 표준 라이브러리 @dataclass, 또는 typing.TypedDict 클래스를 출력합니다. 타입 추론은 동일하며 클래스 골격과 import만 달라집니다.
식별자가 아니거나 camelCase인 키는 어떻게 처리되나요?
snake_case 필드를 켜면 userName 같은 키는 user_name과 Field(alias="userName")가 되어 여전히 왕복 변환됩니다. Python 키워드이거나 유효하지 않은 식별자인 키는 항상 별칭이 붙어 생성된 코드가 유효합니다.
클래스가 올바른 순서로 정렬되나요?
네. 중첩된 자식 클래스는 이를 사용하는 부모 클래스보다 먼저 선언되며 from __future__ import annotations가 포함되므로 전방 참조 오류 없이 모델이 컴파일됩니다.

더 많은 도구