생성 및 코드 구조 도구

JSON → Python dataclass

JSON 예제로 Python 3.10 이상에서 사용할 dataclass 코드를 만드세요.

JSON 입력

생성된 코드

Python dataclass를 생성하세요. 유니언 타입, 선택적 필드의 기본값, 중첩 구조, 예약어를 처리합니다.

JSON과 Python 코드는 로컬에서 추론하고 표시할 뿐입니다. 업로드하거나 코드를 실행하지 않으며 브라우저의 영구 저장소에도 기록하지 않습니다.

도구 소개

Python 표준 라이브러리를 사용해 타입이 지정된 데이터 클래스 초안을 출력합니다. 필드 구조를 추론하지만 JSON 딕셔너리를 dataclass 인스턴스로 재귀 변환하지는 않습니다. 생성 후 애플리케이션에 맞는 로딩과 검증 로직을 추가하세요.

사용 방법

  1. JSON을 붙여 넣으세요. 여러 객체 예제를 통해 누락될 수 있는 필드를 판단합니다.
  2. 루트 데이터 클래스 이름을 설정하세요.
  3. '변환'을 누르고 중첩 타입, 유니언 타입, 필수 필드가 기본값 필드보다 앞에 오는지 확인하세요.
  4. 코드를 복사하거나 Python 파일을 다운로드한 뒤 Python 3.10 이상에서 사용하고 역직렬화 로직을 추가하세요.

사용 예제

  • [{"id":1,"name":"Tom"},{"id":2}]: id는 필수이고 name은 str | None = None으로 표현할 수 있습니다.
  • {"matrix":[[1,2],[3,4]],"items":[]}: 각각 list[list[int]]와 list[Any]로 추론합니다.
  • {"class":"A","first-name":"Tom"}: 유효한 이름으로 바꾸고 주석에 원래 키를 기록합니다.

타입 매핑 규칙

문자열은 str, 정수는 int, 소수와 혼합 숫자는 float, 불리언은 bool, 배열은 list[T]입니다. 다른 요소 타입은 유니언으로 합칠 수 있으며 null만 있거나 구조를 알 수 없으면 Any/None으로 보수적으로 표현합니다. 누락 가능한 필드에는 = None 기본값을 붙이고 필수 필드 뒤에 배치합니다. 명시적으로 null을 허용하는 필수 필드를 자동으로 누락 가능한 필드로 바꾸지는 않습니다. 중첩 데이터 클래스는 의존 순서로 선언하거나 명시적인 전방 참조를 사용하며 빈 객체에는 유효한 빈 클래스를 만듭니다. 필드는 유효한 snake_case로 만들고 예약어에 접미사를 붙이며 이름 충돌을 해결합니다. 이름 변경 주석은 자동 JSON 매핑이 아닙니다. 입력과 출력은 각각 1 MiB, 중첩 64단계, 노드 100000개, 병합 필드 5000개, 타입 256개까지입니다. 안전한 정수 범위 밖의 값, 유한하지 않은 수, 언더플로로 0이 되는 수는 오류를 표시하며 다른 소수는 브라우저 부동소수점 정밀도를 따릅니다.

주요 용도

  • Python 데이터 처리 스크립트용 구조 모델 만들기.
  • API 예제를 중첩 데이터 클래스로 정리하기.
  • 필수, 누락 가능, 명시적인 null의 차이 확인하기.

개인정보 안내

JSON과 Python 코드는 로컬에서 추론하고 표시할 뿐입니다. 업로드하거나 코드를 실행하지 않으며 브라우저의 영구 저장소에도 기록하지 않습니다.

결과를 보관하려면 페이지를 떠나기 전에 복사하거나 다운로드하세요.

자주 묻는 질문

dataclass란 무엇인가요?

Python 표준 라이브러리의 데이터 클래스 데코레이터입니다. 필드 선언을 바탕으로 초기화 같은 일반적인 메서드를 생성합니다.

어떤 Python 버전이 필요한가요?

출력은 Python 3.10 이상을 대상으로 하며 list[T], A | None 같은 타입 표기를 사용합니다.

기본값이 있는 필드는 왜 뒤에 놓나요?

일반적인 dataclass에서는 기본값 필드가 기본값 없는 필드보다 앞에 올 수 없습니다. 초기화 인수 순서 오류가 날 수 있습니다.

Python 예약어는 어떻게 처리하나요?

예를 들어 class를 class_ 같은 유효한 이름으로 바꿉니다. 원래 JSON 키는 주석에 남기고 이름 변경으로 인한 충돌도 해결합니다.

dataclass가 원래 JSON 필드 이름을 자동으로 복원하나요?

아니요. 표준 dataclass에는 JSON 키 매핑이나 재귀 역직렬화 기능이 없습니다. 이름이 바뀐 필드의 변환 로직은 애플리케이션에서 제공해야 합니다.

개발자 도구 목록으로 돌아가기