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 json
modülünü kullanabilirsiniz . Modülü kullanmadan önce içe aktarmanız gerekir.
import json
JSON'u Python'da ayrıştırma
json
Modü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.json
Bir 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.txt
kullanarak 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_dict
person.txt
Programı çalıştırdığınızda person.txt
dosya 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 indent
ve sort_keys
hiç 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, 4
girinti 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