JSON'dan Python Sınıf Dönüştürücü
JSON yapıştırın, anında Python sınıfları alın — dataclass, Pydantic v2 veya TypedDict. Doğru Optional türleme, camelCase alias'ları. %100 tarayıcınızda, ücretsiz.
JSON'dan Python'a dönüştürme nedir?
JSON'dan Python'a dönüştürme, bir JSON örneğini kullanıma hazır Python sınıflarına — standart kütüphane dataclass'ı, Pydantic v2 modeli veya TypedDict — çevirir; böylece bir API yanıtı ya da yapılandırma dosyası için alan tanımlarını elle yazmazsınız. Bu Python sınıf oluşturucu, doğru türleri (int, float, str, bool, Optional) çıkarsar, iç içe nesneleri adlandırılmış sınıflara dönüştürür ve camelCase anahtarlar için Pydantic alias'ları ekler — hepsi %100 tarayıcınızda.
Örnekler
API yanıtı → dataclass
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} from dataclasses import dataclass
from typing import List
@dataclass
class Root:
id: int
name: str
email: str
active: bool
roles: List[str]
Tipik bir REST yükü, kullanıma hazır bir @dataclass olur. Tam sayılar int, ondalıklar float olarak çıkarsanır ve diziler List[str] olur.
İç içe nesne (önce alt sınıf)
{"repo":"pydantic","owner":{"login":"samuelcolvin","id":100}} from dataclasses import dataclass
@dataclass
class Owner:
login: str
id: int
@dataclass
class Root:
repo: str
owner: Owner
İç içe nesneler ayrı, adlandırılmış sınıflara dönüşür. Alt sınıf (Owner), üst sınıftan önce yazılır; böylece kod, from __future__ import annotations olmadan çalışır.
camelCase → Pydantic v2 alias
{"login":"octocat","publicRepos":15,"createdAt":"2011-01-25"} from pydantic import BaseModel, ConfigDict, Field
class Root(BaseModel):
model_config = ConfigDict(populate_by_name=True)
login: str
public_repos: int = Field(alias="publicRepos")
created_at: str = Field(alias="createdAt")
Pydantic modunda alanlar snake_case olur ve Field(alias=...) bunları orijinal JSON anahtarına geri eşler; populate_by_name ise modeli iki şekilde de oluşturmanıza olanak tanır — böylece doğrulama sırasında gerçek API verileri kayıpsız gidip gelir.
Nesne dizisi → TypedDict (isteğe bağlı anahtar)
{"users":[{"id":1,"nick":"x"},{"id":2}]} from typing import List, Optional, TypedDict
class User(TypedDict):
id: int
nick: Optional[str]
class Root(TypedDict):
users: List[User]
Nesne dizileri tek bir öğe türünde birleşir. Bazı öğelerde eksik olan bir anahtar (nick) Optional olur. TypedDict, düz bir dict'in biçimini sıfır çalışma zamanı maliyetiyle tanımlar.
JSON nasıl Python'a dönüştürülür
- 1
JSON'unuzu yapıştırın
Giriş alanına bir JSON nesnesi, dizisi veya API yanıtı bırakın. Dönüştürme anında başlar.
- 2
dataclass, Pydantic veya TypedDict seçin
Çıktı stilini projenize uyacak şekilde değiştirin ve kök sınıfı varsayılan Root'tan yeniden adlandırın.
- 3
Kopyalayın veya indirin
Oluşturulan Python'ı tek tıkla alın ve doğrudan kodunuza yapıştırın.
Common Use Cases
- Türlenmiş API istemcileri
- Bir REST veya GraphQL yanıtı örneğini, alan tanımlarını elle yazmadan bir requests ya da httpx istemcisi için Pydantic modellerine veya dataclass'lara dönüştürün.
- Yapılandırma ve fikstür ayrıştırma
- Yüklemeniz ve doğrulamanız gereken JSON yapılandırma dosyaları, test fikstürleri veya webhook yükleri için modeller oluşturun.
- Hızlı prototipleme ve tür ipuçları
- Bilmediğiniz bir yükü yapıştırıp biçimini anında Python türleri olarak görün — yeni bir API'yi keşfetmenin veya eski dict koduna TypedDict ipuçları eklemenin hızlı bir yolu.
Dönüştürme nasıl çalışır
- Yapısal çıkarım
- Her nesne adlandırılmış bir sınıf olur; aynı biçimler tekilleştirilir, böylece kopyalar değil tek bir sınıf elde edersiniz. Nesne dizileri anahtar anahtar birleştirilir ve bazı öğelerde bulunmayan anahtarlar Optional olur.
- Üç idiomatik hedef
- dataclass sıfır bağımlılık tutar ve Root(**data) için geçerli anahtarları korur; Pydantic v2, gerçek doğrulama için Field alias'larını ve populate_by_name'i ekler; TypedDict, statik tür denetleyicileri için düz bir dict'i tanımlar ve bir anahtar tanımlayıcı olmadığında işlevsel sözdizimi kullanır.
- Doğru, bağımlılığı az türleme
- Tam sayılar int'e (rastgele kesinlik, taşma yok), ondalıklar ve üsler float'a ve yalnızca null olan alanlar Optional[Any]'ye eşlenir. typing içe aktarımları (Optional, List, Any) yalnızca gerçekten kullanıldığında eklenir.
- %100 istemci tarafı
- Ayrıştırma ve oluşturma, ağ çağrısı olmadan tarayıcınızda çalışır; böylece verileriniz gizli kalır.
Temiz Python modelleri için ipuçları
- Modu işe göre eşleştirin
- Dahili veri taşıyıcıları için dataclass'ı, güvenilmeyen girdiyi doğruladığınızda veya ayrıştırdığınızda Pydantic v2'yi ve yalnızca mevcut dict'ler üzerinde statik tür ipuçlarına ihtiyaç duyduğunuzda TypedDict'i kullanın.
- Temsili bir örnek yapıştırın
- Alanlar yalnızca bir örnek onları atladığında Optional olarak işaretlenir ve yalnızca null olan değerler Any'ye geri düşer. Dolu, eksiksiz bir örnek en kesin türleri verir.
- Kök sınıfınızı adlandırın
- Okunabilir ve içe aktarılabilir kod için varsayılan Root yerine anlamlı bir kök adı (User, ApiResponse) belirleyin.
Sıkça Sorulan Sorular
JSON'u bir Python sınıfına nasıl dönüştürürüm?
dataclass, Pydantic ve TypedDict çıktısı arasındaki fark nedir?
JSON'dan bir Pydantic modeli nasıl oluştururum?
dataclass çıktısı camelCase anahtarları nasıl işler?
İsteğe bağlı ve null alanlar nasıl türlenir?
Her JSON değeri hangi Python türüne eşlenir?
İç içe nesneleri ve nesne dizilerini işler mi?
Python anahtar sözcükleri ve tanımlayıcı olmayan anahtarlar nasıl işlenir?
Oluşturulan dataclass'ı JSON ayrıştırmak için nasıl kullanırım?
JSON verilerim gizli ve güvende mi?
Araç ücretsiz mi? Hesap gerekiyor mu?
İlgili Araçlar
Tüm araçları görüntüleyin →Base64 Çözücü ve Kodlayıcı
Kodlama ve Biçimlendirme
Base64'ü ücretsiz çevrimiçi kodlayın ve çözün. Tam UTF-8 ve emoji desteğiyle gerçek zamanlı dönüştürme. %100 tarayıcıda — kayıt gerekmez.
Base64'ü Görsele Çevirme Aracı
Kodlama ve Biçimlendirme
Bir Base64 dizesini ya da data URI'yi tarayıcınızda görsele geri çözün. Önizleyin, boyutları ve MIME'ı okuyun, ardından PNG, JPG, GIF, SVG olarak indirin. Yükleme yok.
CSV'den JSON'a Dönüştürücü
Kodlama ve Biçimlendirme
CSV'yi tarayıcınızda JSON'a dönüştürün. RFC 4180, tür çıkarımı, başlık satırı, büyük tam sayı güvenli. %100 gizli, yükleme yok.
.env'den JSON'a Dönüştürücü
Kodlama ve Biçimlendirme
Bir .env dosyası yapıştırın, anında JSON alın. Sırlarınız tarayıcınızdan asla çıkmaz — %100 gizli, yükleme yok, ücretsiz dotenv ayrıştırıcı.
Ücretsiz HTML Varlık Çözücü — HTML Unescape
Kodlama ve Biçimlendirme
HTML varlıklarını çözün ve HTML'i çevrimiçi unescape edin — ücretsiz, kayıt yok, %100 tarayıcınızda. Adlı, ondalık & hex referansları tekrar karaktere çevirir; asla yüklenmez.
Ücretsiz HTML Varlık Kodlayıcı — HTML Escape
Kodlama ve Biçimlendirme
HTML varlıklarını kodlayın ve özel karakterleri (< > & " ') çevrimiçi escape edin — ücretsiz, kayıt yok, %100 tarayıcınızda. Adlı, ondalık veya hex çıktı; asla yüklenmez.