개발자 / 유형

JSON to Python 변환기

JSON 샘플을 중첩 클래스, 선택적·nullable 필드 및 snake_case 이름을 사용하는 Python dataclasses, TypedDict 정의 또는 Pydantic 모델로 변환합니다.

JSON to Python 변환기: 변환기는 샘플의 구조를 읽습니다. 각 객체는 클래스가 되고, 배열은 list[...]가 되며, 배열 안의 객체는 병합됩니다. 따라서 일부 레코드에 없는 키는 선택 사항이 되고, 때때로 null인 키는 "| None"이 됩니다. 유효한 Python 이름이 아닌 키는 snake_case로 변환됩니다. Pydantic 모델은 원래 키를 별칭으로 유지하며, TypedDict는 함수형 형식으로 전환됩니다. 여러 까다로운 샘플의 출력은 Python 3.13에서 실행했으며, Pydantic으로 샘플을 검증했습니다. 서버에 파일을 전혀 업로드하지 않고 브라우저에서 100% 로컬로 실행됩니다.

카테고리
개발자 도구
실행 횟수
브라우저에서
비용
무료 · 가입 불필요
사용 가능 여부
사용 가능
JSON을 Python으로로컬 처리

브라우저에서 전부 실행됩니다

Python

from __future__ import annotations

from dataclasses import dataclass


@dataclass
class Address:
    city: str
    zip_code: str


@dataclass
class User:
    id: int
    user_name: str
    avatar_url: str
    score: float
    tags: list[str]
    address: Address
    manager_id: int | None
    nickname: str | None = None


UserList = list[User]

Python 3.10 이상을 기준으로 작성됩니다. 일부 객체에 없는 키는 선택 사항이 되고, 때때로 null인 키는 “| None”이 됩니다. 데이터 클래스는 이름이 변경된 키를 JSON으로 다시 매핑하지 않으므로, 키가 유효한 Python 이름이 아닐 때는 별칭을 추가하는 Pydantic을 사용하십시오.

타입부터 검증까지

타입 힌트만으로는 런타임에 데이터를 검사할 수 없습니다. json.loads는 주석에 무엇이 적혀 있든 일반 dict와 list를 반환합니다. Pydantic 모델은 Model.model_validate(data)로 데이터를 파싱하면서 변환하고 검증하며, 형식에 맞지 않는 모든 필드를 보고합니다.

같은 샘플을 다른 언어로 변환하려면 JSON to TypeScript와 JSON to Go를 참조하십시오. 언어에 종속되지 않는 계약이 필요하면 JSON to JSON Schema를 사용하십시오.

좋은 샘플 얻기

레코드 하나가 아니라 여러 개를 붙여 넣으십시오. 선택적 필드나 빈 필드가 있는 레코드도 포함해야 변환기가 항상 존재하는 키를 파악할 수 있습니다. 항상 null이거나 빈 배열인 값은 Any로 출력되므로 직접 입력해야 합니다.

사용 방법

  1. JSON 샘플을 붙여넣습니다. 일반적인 레코드가 여러 개 포함된 배열이 가장 좋습니다.
  2. dataclasses, TypedDict 또는 Pydantic을 선택하고 최상위 타입의 이름을 지정합니다.
  3. 생성된 클래스를 프로젝트에 복사합니다.

개인정보 보호 및 제한사항

JSON은 브라우저에서 변환되며 절대 업로드하지 않습니다.

관련 도구

자주 묻는 질문

어떤 스타일을 사용해야 하나요?

API의 데이터를 검증하고 파싱하려면 Pydantic을 사용하고, 일반 dict를 전달하는 코드의 타입을 검사하려면 TypedDict를 사용하며, 직접 생성하는 간단한 내부 객체에는 dataclasses를 사용합니다.

코드에 필요한 Python 버전은 무엇인가요?

X | None 구문을 사용하려면 Python 3.10 이상이 필요합니다. TypedDict의 NotRequired에는 3.11이 필요하며, 이전 버전에서는 typing_extensions를 사용해야 합니다.

일부 필드의 타입이 Any인 이유는 무엇인가요?

항상 null인 키나 빈 배열은 타입을 알 수 있는 단서를 제공하지 않습니다. API 문서에 맞는 실제 타입으로 Any를 바꾸십시오.

무료 도구 · 브라우저에서회 실행 · 계정 불필요