Python JSON Ayrıştırma: Serileştirme ve Seriden Çıkarma
Python'da JSON verilerini nasıl okuyacağınızı, yazacağınızı ve ayrıştıracağınızı öğrenin. json.loads, json.dumps ve JSON kodlayıcılarını/kod çözücülerini özelleştirme konusunda uzmanlaşın.
Genel Bakış
JSON (JavaScript Object Notation), modern web API'lerine, yapılandırmalarına ve veritabanı yüklerine hakim olan hafif veri değişim formatıdır. JSON yapıları Python sözlüklerine ve listelerine benzediğinden, bunlar arasında çeviri yapmak inanılmaz derecede kusursuzdur. Python, JSON dizelerini Python nesnelerine ayrıştırmayı ve Python nesnelerini tekrar JSON dizelerine dönüştürmeyi kolaylaştıran yerleşik bir "json" modülüyle donatılmıştır.
Bir Python nesnesini (sözlük gibi) ham bir JSON dizesine çevirme işlemine Serileştirme veya kodlama adı verilir. Bu, 'json.dumps()' (dizeler için) ve 'json.dump()' (doğrudan dosyaya yazmak için) tarafından gerçekleştirilir. JSON'u güzelleştirmek için "girinti" veya niteliklerin alfabetik olarak sıralanmasını sağlamak için "sort_keys" gibi biçimlendirme parametrelerini kontrol edebilirsiniz. Tersine, bir JSON dizesinin Python sözlüğüne ayrıştırılmasına Seri Kaldırma adı verilir ve "json.loads()" ve "json.load()" yoluyla yürütülür.
Dizeler, sayılar, listeler ve dikteler gibi standart Python türleri otomatik olarak JSON'a serileştirilirken, özel nesneler (sınıflar veya tarih-saat nesneleri gibi) bunu yapmaz. Özel bir nesneyi doğrudan kodlamaya çalışmak bir "TypeError" hatasına neden olur. Bunun üstesinden gelmek için geliştiricilerin "json.JSONEncoder"dan miras alan özel bir kodlayıcı sınıfı oluşturması ve sınıfları okunabilir sözlükler halinde serileştirmek için ".default()" yöntemini geçersiz kılması gerekir. JSON manipülasyonunda uzmanlaşmak, harici web hizmetleriyle iletişim kurmanın anahtarıdır.
Kod ve Yürütme Çıkışı
Bir sözlüğü JSON dizesine dönüştürme ve yerleşik json kitaplığını kullanarak onu geri ayrıştırma.
import json
# Python Dictionary representing a user profile
user_profile = {
"name": "Alex",
"is_premium": True,
"skills": ["Python", "Docker"],
"age": 28
}
# Serialize dictionary to JSON string
json_string = json.dumps(user_profile, indent=2)
print("--- JSON String ---")
print(json_string)
# Deserialize JSON string back to dictionary
parsed_dict = json.loads(json_string)
print("\n--- Parsed Python Dictionary ---")
print(f"Name: {parsed_dict['name']}")
print(f"First Skill: {parsed_dict['skills'][0]}")--- JSON String ---
{
"name": "Alex",
"is_premium": true,
"skills": [
"Python",
"Docker"
],
"age": 28
}
--- Parsed Python Dictionary ---
Name: Alex
First Skill: PythonAdım Adım Uygulama
- Yük gönderme ve REST API'lerinden veri okuma
- Yapılandırma tercihlerini settings.json dosyalarında saklama
- Yapılandırılmış yüklerin mikro hizmetler arasında geçirilmesi
Sıkça Sorulan Sorular
json.dump ve json.dumps arasındaki fark nedir?
json.dump ('s' olmadan), JSON verilerini doğrudan bir dosya akışına yazar. json.dumps ('s' ile birlikte) verileri bir Python dize değişkenine serileştirir.
JSON kod çözme hatalarını nasıl ele alıyorsunuz?
Hatalı biçimlendirilmiş JSON dizelerini zarif bir şekilde işlemek için ayrıştırma kodunuzu 'json.JSONDecodeError' yakalayan bir try/hariç bloğuna sarın.
İlgili Konular
Python Sözlüklerinde ustalaşın. Anahtar/değer çifti verilerini depolamayı, almayı ve işlemeyi öğrenin. Eşlemelere ilişkin performansı ve en iyi uygulamaları anlayın.
Python Dosya G/ÇPython'da dosyaları nasıl okuyacağınızı ve yazacağınızı öğrenin. Kaynak sızıntısı olmadan dosya işlemlerini güvenli bir şekilde yürütmek için open(), read(), write() ve bağlam yöneticilerinde uzmanlaşın.
Python CSVPython'da CSV verilerinin nasıl işleneceğini öğrenin. Verimli tablo ayrıştırma için csv.reader, csv.writer ve DictReader/DictWriter'da uzmanlaşın.
Önerilen Python Kaynakları
İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.
Python'da JSON Dosyası Nasıl Okunur ve Ayrıştırılır
Yerleşik json modülünü kullanarak Python'da JSON dosyalarını nasıl okuyacağınızı, ayrıştıracağınızı ve yükleyeceğinizi öğrenin. JSON dizelerini sözlüklere (veya tam tersi) dönüştürme konusunda uzmanlaşın.
Python String Yöntemleri Hile Sayfası
Python dize manipülasyonu için eksiksiz bir başvuru kılavuzu. Dize özelliklerini biçimlendirme, arama, bölme, değiştirme ve denetleme konusunda uzmanlaşın.
Python vs JavaScript: Hangi Programlama Dili En İyisidir?
Python ve JavaScript arasında kapsamlı bir karşılaştırma. Sözdizimi farklılıklarını, performansı, kullanım örneklerini (arka uç ve ön uç) ve kodlama örneklerini keşfedin.