Python'da JSON Verileriyle Çalışma

JSON (JavaScript Nesne Gösterimi), bir sunucu ile bir istemci arasında veri alışverişi için kullanılan hafif bir veri biçimidir. Genellikle web uygulamalarında veri göndermek ve almak için kullanılır. Python, JSON verileriyle çalışmayı kolaylaştıran json adlı yerleşik bir modül sağlar. Bu makale, JSON nesnelerini okuma, yazma ve düzenleme dahil olmak üzere Python'da JSON verileriyle çalışmanın temelleri konusunda size rehberlik edecektir.

JSON Nedir?

JSON, hem insanlar hem de makineler için okunması ve yazılması kolay metin tabanlı bir formattır. Python sözlüklerine benzer şekilde anahtar-değer çiftlerinden oluşur. Tipik bir JSON nesnesi şu şekilde görünür:

{
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "is_student": false,
    "skills": ["Python", "JavaScript", "SQL"]
}

JSON Modülünü İçe Aktarma

json modülü Python'un standart kütüphanesine dahildir, bu yüzden hiçbir şey yüklemenize gerek yoktur. Bunu komut dosyanızın başına içe aktarmanız yeterlidir:

import json

JSON Verilerini Okuma

JSON verilerini bir dizeden veya bir dosyadan okuyabilirsiniz. json.loads() yöntemi bir dizeden JSON verilerini ayrıştırmak için kullanılırken, json.load() bir dosyadan JSON verilerini okumak için kullanılır.

Bir Dizgeden JSON Okuma

JSON'u bir dizeden okumak için, JSON dizesini Python sözlüğüne dönüştüren json.loads() yöntemini kullanın.

# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)

print(data)
print(data['name'])  # Output: Alice

Bir Dosyadan JSON Okuma

Bir dosyadan JSON verilerini okumak için json.load() metodunu kullanın. Bu metot bir dosyanın içeriğini okur ve onu bir Python sözlüğüne dönüştürür.

# Example of reading JSON from a file
with open('data.json', 'r') as file:
    data = json.load(file)

print(data)

JSON Verilerinin Yazılması

JSON verilerini bir dizeye veya bir dosyaya yazabilirsiniz. json.dumps() yöntemi bir Python nesnesini bir JSON dizesine dönüştürmek için kullanılırken, json.dump() yöntemi JSON verilerini bir dosyaya yazmak için kullanılır.

JSON'u Bir Dizeye Yazma

JSON'u bir dizeye yazmak için, Python sözlüğünü JSON dizesine dönüştüren json.dumps() yöntemini kullanın.

# Example of writing JSON to a string
data = {
    "name": "Bob",
    "age": 25,
    "city": "Los Angeles"
}

json_string = json.dumps(data)
print(json_string)

Bir Dosyaya JSON Yazma

JSON verilerini bir dosyaya yazmak için json.dump() metodunu kullanın. Bu metot bir Python nesnesi alır ve onu JSON formatında bir dosyaya yazar.

# Example of writing JSON to a file
data = {
    "name": "Bob",
    "age": 25,
    "city": "Los Angeles"
}

with open('output.json', 'w') as file:
    json.dump(data, file)

JSON Verilerini Güzel Yazdırma

json.dumps() yöntemi, JSON verilerini daha iyi okunabilirlik için biçimlendirmenize olanak tanıyan birkaç parametreye sahiptir. indent parametresi, girinti için kullanılacak boşluk sayısını belirtirken, sort_keys ​​parametresi çıktıdaki anahtarları sıralar.

# Example of pretty-printing JSON data
data = {
    "name": "Charlie",
    "age": 35,
    "city": "Chicago"
}

json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)

JSON ve Python Veri Türleri Arasında Dönüştürme

Python'un json modülü farklı veri tiplerini işleyebilir ve bunları JSON ve Python arasında dönüştürebilir. İşte hızlı bir referans:

  • dict (Python) to object (JSON)
  • list (Python) to array (JSON)
  • str (Python) - string (JSON)
  • int, float (Python) - sayı (JSON)
  • Doğru, Yanlış (Python) ile doğru, yanlış (JSON)
  • Hiçbiri (Python) - null (JSON)

JSON Hatalarının Ele Alınması

JSON ile çalışırken, yanlış biçimlendirme veya beklenmeyen veriler nedeniyle hatalar oluşabilir. json modülü, bu tür sorunlarla karşılaştığında JSONDecodeError gibi istisnalar oluşturur. Bu hataları zarif bir şekilde işlemek için try ve except bloklarını kullanın.

# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"'  # Missing closing brace

try:
    data = json.loads(json_string)
except json.JSONDecodeError as e:
    print(f"Error decoding JSON: {e}")

Çözüm

JSON verileriyle çalışmak, özellikle web geliştirme ve veri biliminde Python geliştiricileri için temel bir beceridir. json modülü, JSON verilerini okumak, yazmak ve düzenlemek için kullanımı kolay yöntemler sağlar. Bu tekniklerde ustalaşarak, Python uygulamalarınızda JSON verilerini verimli bir şekilde işleyebilirsiniz.