Python JSON: JSON Okuma, Yazma, Ayrıştırma (Örneklerle)

Bu eğitimde, örnekler yardımıyla Python'da JSON'u ayrıştırmayı, okumayı ve yazmayı öğreneceksiniz. Ayrıca, JSON'u dikte etmeyi ve güzelce yazdırmayı öğreneceksiniz.

JSON ( J Ava S cript O Nesne , N -rotasyon) yapılandırılmış verileri göstermek için kullanılan yaygın bir veri biçimidir. JSON biçiminde bir sunucu ile web uygulaması arasında veri göndermek ve almak yaygındır.

Python'da JSON bir dizge olarak bulunur. Örneğin:

 p = '("name": "Bob", "languages": ("Python", "Java"))' 

JSON nesnesinin bir dosyada depolanması da yaygındır.

Json Modülünü İçe Aktar

JSON (dize veya JSON nesnesi içeren dosya) ile çalışmak için Python jsonmodülünü kullanabilirsiniz . Modülü kullanmadan önce içe aktarmanız gerekir.

 import json

JSON'u Python'da ayrıştırma

jsonModül sayesinde JSON nesnesi içeren JSON dizeleri ve dosyaları ayrıştırmak mümkün kılar.

Örnek 1: Dikte edilecek Python JSON

Bir JSON dizesini json.loads()yöntemi kullanarak ayrıştırabilirsiniz . Yöntem bir sözlük döndürür.

 import json person = '("name": "Bob", "languages": ("English", "Fench"))' person_dict = json.loads(person) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print( person_dict) # Output: ('English', 'French') print(person_dict('languages'))

Burada person bir JSON dizesidir ve person_dict bir sözlüktür.

Örnek 2: Python JSON dosyasını oku

json.load()JSON nesnesini içeren bir dosyayı okumak için yöntemi kullanabilirsiniz .

person.jsonBir JSON nesnesi içeren bir dosyanız olduğunu varsayalım .

  ("name": "Bob", "languages": ("English", "Fench") ) 

Bu dosyayı şu şekilde ayrıştırabilirsiniz:

  import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data) 

Burada open()json dosyasını okumak için fonksiyonu kullandık . Daha sonra dosya, json.load()bize data adlı bir sözlük veren yöntem kullanılarak ayrıştırılır .

Python'da dosyaları nasıl okuyup yazacağınızı bilmiyorsanız, Python Dosya G / Ç'yi kontrol etmenizi öneririz.

Python JSON dizesine dönüştür

json.dumps()Yöntem kullanarak bir sözlüğü JSON dizesine dönüştürebilirsiniz .

Örnek 3: Dikte'yi JSON'a dönüştürme

  import json person_dict = ('name': 'Bob', 'age': 12, 'children': None ) person_json = json.dumps(person_dict) # Output: ("name": "Bob", "age": 12, "children": null) print(person_json) 

İşte Python nesnelerini ve bunların JSON'a eşdeğer dönüşümlerini gösteren bir tablo.

Python JSON Eşdeğeri
dict nesne
list, tuple dizi
str dizi
int, float,int numara
True doğru
False yanlış
None boş

JSON'u bir dosyaya yazma

Python'da bir dosyaya JSON yazmak için json.dump()method kullanabiliriz .

Örnek 4: JSON'u bir dosyaya yazma

  import json person_dict = ("name": "Bob", "languages": ("English", "Fench"), "married": True, "age": 32 ) with open('person.txt', 'w') as json_file: json.dump(person_dict, json_file) 

Yukarıdaki programda, person.txtkullanarak yazma modunda isimli bir dosya açtık 'w'. Dosya halihazırda mevcut değilse oluşturulacaktır. Ardından, dosyaya kaydedilecek bir JSON dizesine json.dump()dönüştürür .person_dictperson.txt

Programı çalıştırdığınızda person.txtdosya oluşturulacaktır. Dosyanın içinde aşağıdaki metin var.

 ("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)

Python oldukça baskı JSON

JSON verilerini analiz etmek ve hatalarını ayıklamak için, daha okunabilir bir formatta yazdırmamız gerekebilir. Bu ek parametreler ileterek yapılabilir indentve sort_keyshiç json.dumps()ve json.dump()yöntemi.

Örnek 5: Python pretty print JSON

  import json person_string = '("name": "Bob", "languages": "English", "numbers": (2, 1.6, null))' # Getting dictionary person_dict = json.loads(person_string) # Pretty Printing JSON string back print(json.dumps(person_dict, indent = 4, sort_keys=True)) 

Programı çalıştırdığınızda, çıktı:

 ("diller": "İngilizce", "ad": "Bob", "sayılar": (2, 1.6, boş)) 

Yukarıdaki programda, 4girinti için boşluklar kullandık . Ve anahtarlar artan sırada sıralanmıştır.

Bu arada, girintinin varsayılan değeri None. Ve sort_keys'in varsayılan değeri False.

Önerilen Okumalar:

  • Python JSON'dan CSV'ye ve tam tersi
  • Python XML'den JSON'a ve tersi
  • Python simplejson

Ilginç makaleler...