다른 모양의 레코드도 포함하기
객체 하나 또는 객체만 담은 비어 있지 않은 배열을 넣습니다. 중첩 배열의 모든 객체를 함께 분석해 요소 모델을 만듭니다. 첫 요소에 없는 필드도 다른 요소에 있으면 반영됩니다.
타입 생성
항상 존재하는 null 필드와 일부 레코드에서 빠진 키는 서로 다른 기본값을 만듭니다.
이 브라우저에서 파싱하고 생성합니다. 입력을 업로드하거나 저장하지 않습니다.
배열 샘플은 요소 모델 Root을 정의합니다. Pydantic load_models는 객체와 배열을 모두 받습니다.
클래스 2개 · null 허용 필드 2개
JSON to Python은 API 응답을 바탕으로 검토할 수 있는 모델 초안을 만듭니다. 모든 값이 채워진 응답 하나로는 누락 가능한 필드를 알아낼 수 없습니다. 키 구성이 다른 레코드도 함께 넣어 보세요.
JSON dataclass 출력은 표준 라이브러리만 사용하는 자료형이 필요할 때 적합합니다. 입력 검증과 중첩 객체 생성이 필요하다면 Pydantic 모델을 선택하세요. Python 타입 힌트는 실제 데이터 계약을 대신하지 않습니다.
JSON to Python은 모든 샘플에 있는 nullable 필드를 필수로 유지합니다. 일부 샘플에 키가 없다면 None 기본값을 추가합니다. 값으로 null을 허용하는 것과 생성자에서 인수를 생략하는 것은 다른 조건입니다.
예약어와 문장부호가 들어간 키는 Python 속성으로 그대로 쓸 수 없습니다. 안전한 이름을 만들고 원래 표기는 dataclass metadata 또는 Pydantic alias에 남깁니다. 이름 충돌에는 일정한 접미사를 붙입니다.
객체 하나 또는 객체만 담은 비어 있지 않은 배열을 넣습니다. 중첩 배열의 모든 객체를 함께 분석해 요소 모델을 만듭니다. 첫 요소에 없는 필드도 다른 요소에 있으면 반영됩니다.
기본 설정에서는 실제 누락된 키만 생략할 수 있습니다. 전체 선택 항목은 모든 필드에 기본값을 추가합니다. 날짜는 기본적으로 str입니다. 소수나 지수 표기가 섞인 숫자 그룹에 정밀도가 필요하면 Decimal을 고르세요.
편집 후 350ms가 지나면 생성됩니다. 자동을 끄면 생성 버튼이나 Ctrl/Cmd+Enter를 사용합니다. 변경 즉시 이전 결과의 복사와 저장이 막힙니다. 지우기나 예제 불러오기 후 입력·설정·결과를 한 번 되돌릴 수 있습니다.
dataclass는 표준 라이브러리만 가져오며 기본값 없는 필드를 먼저 배치합니다. Pydantic 출력의 대상은 2.12.5로 고정됩니다. 자식 클래스를 부모보다 먼저 선언하므로 Python 3.9 이상에서 파일 전체를 가져올 수 있습니다.
정수로만 구성된 그룹은 임의 정밀도 int입니다. 소수나 지수 표기가 하나라도 섞이면 기본적으로 float를 사용하며, 그 그룹의 큰 정수도 반올림될 수 있습니다. Decimal 로더는 Any 내부까지 소수 토큰을 float 중간값 없이 읽습니다.
ISO 모드는 유효한 달력 날짜와 시간대가 포함된 완전한 타임스탬프를 인식합니다. 소수 초는 최대 6자리이며 같은 위치의 null 아닌 문자열이 모두 같은 종류여야 합니다. 잘못된 날짜와 시간대 없는 시각은 str로 남습니다. 날짜 파싱은 Pydantic이 수행합니다.
속성은 ASCII snake_case로 바뀝니다. 예약어, 선행 밑줄, model_* 이름과 BaseModel 메서드 이름을 피합니다. 빈 키·유니코드·제어 문자는 alias로 보존합니다. Decimal 같은 클래스 이름과 겹치지 않도록 import에도 내부 별칭을 사용합니다.
직접 변환 코드를 작성하면 가능합니다. JSON to Python의 dataclass 출력에는 디코더가 포함되지 않습니다. json.loads로 읽은 사전에서 키를 매핑하고 필요한 자식 클래스를 명시적으로 만들어야 합니다.
dataclass 생성자는 전달된 값을 속성에 넣을 뿐 타입 힌트를 따라 재귀적으로 변환하지 않습니다. 직접 자식 인스턴스를 구성하거나 Pydantic 모드의 load_models를 사용하세요. 타입 선언과 런타임 변환은 별개입니다.
별칭을 켜면 Pydantic은 Field(alias=...)로 원래 키를 읽습니다. dataclass에는 json_key metadata가 남으므로 직접 작성하는 어댑터에서 참고할 수 있습니다. 충돌하는 키에는 접미사를 붙여 서로 다른 속성으로 만듭니다.
아닙니다. 모델은 생성할 때 제공한 샘플에 대한 초안입니다. 응답 구조가 바뀌면 대표 샘플을 다시 넣고 생성해야 합니다. 기존 Pydantic 출력은 extra="forbid" 설정으로 알 수 없는 필드를 거부하므로 변경을 조용히 넘기지 않습니다.
dataclass 인스턴스는 dataclasses.asdict로 사전으로 바꾼 뒤 json.dumps할 수 있습니다. 단, 결과 키는 Python 속성 이름입니다. 원래 JSON 별칭과 date·Decimal 같은 값의 직렬화는 별도로 처리해야 합니다.
개선할 추론 사례가 있나요?
JSON to Python에 누락 키와 null, 대표적인 숫자를 함께 넣어 보세요. 내보낸 소스가 앱의 읽기 규칙에 맞는지 확인한 뒤 사용하세요.