Geliştirici / Türler
JSON'dan Python'a Dönüştürücü
İç içe sınıflar, isteğe bağlı ve null olabilir alanlar ve snake_case adlarıyla JSON örneğini Python dataclass'lerine, TypedDict tanımlarına veya Pydantic modellerine dönüştürün.
JSON'dan Python'a Dönüştürücü: Dönüştürücü, örneğin yapısını okur: her nesne bir sınıfa, diziler list[...] biçimine dönüştürülür ve bir dizideki nesneler birleştirilir. Böylece bazı kayıtlarda bulunmayan bir anahtar isteğe bağlı, bazen null olan bir anahtar ise "| None" olur. Geçerli Python adları olmayan anahtarlar snake_case biçimine dönüştürülür; Pydantic modelleri özgün anahtarı alias olarak korur ve TypedDict işlevsel biçime geçer. Birkaç karmaşık örneğin çıktısı Python 3.13'te çalıştırılmış, Pydantic ile örneğin buna göre doğrulaması yapılmıştır. Sunucuya hiçbir dosya yüklenmeden tarayıcınızda %100 yerel olarak çalışır.
- Kategori
- Geliştirici araçları
- Çalıştırma sayısı
- Tarayıcınızda
- Maliyet
- Ücretsiz · kayıt gerekmez
- Kullanılabilirlik
- Kullanıma hazır
Tamamen tarayıcınızda çalışır
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 veya sonrası için yazılmıştır. Bazı nesnelerde bulunmayan anahtarlar isteğe bağlı olur; bazen null olan anahtarlar “| None” olur. Dataclasses, yeniden adlandırılan anahtarları JSON'a geri eşlemez; bu nedenle anahtarlar geçerli Python adları olmadığında takma adlar ekleyen Pydantic'i kullanın.
Türlerden doğrulamaya
Tür ipuçları tek başına çalışma zamanında verileri kontrol etmez: json.loads, ek açıklamalar ne derse desin size düz dict ve list değerleri verir. Pydantic modelleri, veriler ayrıştırılırken bunları doğrular ve dönüştürür; Model.model_validate(data) ile uymayan her alanı bildirir.
Aynı örneği diğer dillerde görmek için JSON to TypeScript ve JSON to Go sayfalarına bakın; dilden bağımsız bir sözleşme için JSON to JSON Schema sayfasını kullanın.
İyi bir örnek alma
Tek bir kayıt yerine birkaç kayıt, isteğe bağlı veya boş alanlar içeren kayıtlar da yapıştırın; böylece dönüştürücü hangi anahtarların her zaman bulunduğunu görebilir. Her zaman null veya boş dizi olan değerler Any olarak çıkar ve elle doldurulmaları gerekir.
Nasıl kullanılır?
- Bir JSON örneği yapıştırın; tercihen birkaç tipik kayıt içeren bir dizi kullanın.
- dataclass, TypedDict veya Pydantic seçin ve en üst düzey türe bir ad verin.
- Oluşturulan sınıfları projenize kopyalayın.
Gizlilik ve sınırlamalar
JSON tarayıcıda dönüştürülür ve hiçbir yere yüklenmez.
İlgili araçlar
Sık sorulan sorular
Hangi stili kullanmalıyım?
Bir API'den gelen verileri doğrulamak ve ayrıştırmak için Pydantic'i, normal dict'leri kullanan kodlarda tür denetimi yapmak için TypedDict'i, kendiniz oluşturduğunuz basit dahili nesneler için ise dataclass'leri kullanın.
Kod hangi Python sürümünü gerektirir?
X | None söz dizimi için Python 3.10 veya sonrası gerekir; TypedDict'deki NotRequired için 3,11 ya da daha eski sürümlerde typing_extensions gerekir.
Bazı alanların türü neden Any olarak belirtiliyor?
Her zaman null olan bir anahtar veya boş bir dizi, türü hakkında bilgi vermez; Any yerine API'nizin belgelerindeki gerçek türü yazın.
Ücretsiz araç · tarayıcınızda kez çalıştırma · hesap gerekmez