UTILS.
100% di peramban
🐍

JSON ke Model Pydantic

Ubah contoh JSON menjadi kelas model Pydantic v2 Python, dengan sakelar untuk output @dataclass atau TypedDict dan aliasing field snake_case.

keluaran

Tentang alat ini

Alat JSON ke Model Pydantic mengubah contoh JSON yang ditempel menjadi kelas model Python. Pengembang Python dan FastAPI terus-menerus membuat kerangka model Pydantic dari contoh respons API, dan konverter ini melakukannya secara instan di browser. Ia mem-parsing JSON Anda, menyimpulkan tipe Python secara rekursif, dan menghasilkan satu kelas per objek: string menjadi str, string tanggal-waktu ISO datetime, string tanggal-saja date, bilangan bulat int, angka lain float, boolean bool, array List[T], dan objek bersarang kelas model masing-masing yang dinamai dalam PascalCase.

Semua parsing dan pembuatan terjadi secara lokal dengan JSON.parse dan JavaScript biasa, sehingga tidak ada yang Anda tempel meninggalkan mesin Anda. Kelas anak dihasilkan sebelum kelas yang merujuknya (urutan topologis), dan header hanya mengimpor apa yang benar-benar digunakan — BaseModel dan Field dari pydantic, Optional / List / Union / Any dari typing, dan datetime / date bila relevan. from __future__ import annotations selalu disertakan agar referensi maju berfungsi terlepas dari urutan.

Kunci yang hilang dari sebagian objek saudara, atau terlihat sebagai null, menjadi Optional[T] = None. Sakelar mode-output beralih antara Pydantic v2 BaseModel (default), @dataclass pustaka standar, dan typing.TypedDict. Aktifkan field snake_case untuk mengganti nama kunci camelCase atau tidak valid dan menambahkan Field(alias="originalKey") secara otomatis sehingga model tetap dapat mem-parsing JSON asli. Salin kodenya atau unduh sebagai berkas .py.

Pertanyaan yang sering diajukan

Tipe Python mana yang disimpulkan?
string ke str, tanggal-waktu ISO ke datetime, tanggal-saja ke date, bilangan bulat ke int, angka non-bulat ke float, boolean ke bool, array ke List[T] dengan T digabung dari elemen, dan objek ke kelas BaseModel bersarang. Nilai null atau hilang menjadi Optional[T] = None.
Bisakah saya mendapatkan dataclass atau TypedDict sebagai gantinya?
Ya. Sakelar mode-output menghasilkan Pydantic v2 BaseModel (default), @dataclass pustaka standar dengan impor dataclasses, atau kelas typing.TypedDict. Inferensi tipe sama; hanya kerangka kelas dan impor yang berubah.
Bagaimana kunci non-pengidentifikasi atau camelCase ditangani?
Dengan field snake_case aktif, kunci seperti userName menjadi user_name plus Field(alias="userName") agar tetap bolak-balik. Kunci yang merupakan kata kunci Python atau pengidentifikasi tidak valid selalu diberi alias agar kode yang dihasilkan valid.
Apakah kelas diurutkan dengan benar?
Ya. Kelas anak bersarang dideklarasikan sebelum kelas induk yang menggunakannya, dan from __future__ import annotations disertakan, sehingga model dikompilasi tanpa kesalahan referensi-maju.

Alat lainnya