Python XML'den JSON'a

Python Xml Json



Genişletilebilir İşaretleme Dili (XML) ve JavaScript Nesne Gösterimi (JSON), verilerin depolanması için iki ünlü veri formatıdır. Hem JSON hem de XML, verileri insanlar ve makineler tarafından okunabilecek şekilde depolamamıza izin verir. Başlangıç ​​olarak JSON, çoğunlukla sunucular ve yazılım uygulamaları arasında veri alışverişi yapmak için kullanılan bir veri yapısı türüdür. Verileri anahtar/değer çiftleri olarak depolar. JSON, anahtar/değer çiftlerinin iki nokta üst üste (:) temelinde ayrıldığı verilerin bir nesnesini ve virgül temelinde başkaları tarafından ayrılan bir tam anahtar/değer çifti oluşturur.







Ayrıca XML, verileri depolamak için de kullanılan bir HTML tipi biçimlendirme dilidir. Ancak, XML herhangi bir önceden tanımlanmış etiket sağlamaz. Kendi etiketlerimizi oluşturabilir ve verileri saklayabiliriz. Tartıştığımız gibi, sunucular ve yazılım uygulamaları arasında veri alışverişi için hem JSON hem de XML kullanılır. Ancak, iki veri formatı biraz farklıdır. JSON, nesne türü bir veri depolama biçimidir, oysa XML'in türü yoktur. XML dosyaları, verileri yalnızca dize biçiminde depolar ve JSON dosyasından daha ağırdır. JSON dosyaları ise dizeleri, dizileri, sayıları kayan noktalı sayıları ve Boolean'ı depolayabilir.



Bu makalede, Python kullanılarak XML'den JSON'a dönüştürme açıklanmaktadır. Python xmltodict modülü, XML'i JSON formatına dönüştürmek için kullanılır.



xmltodict modül kurulumu

XML'i JSON'a dönüştürmeye başlamadan önce xmltodict modülünü kurmamız gerekiyor. xmltodict modülü, python dizin paketi (pip) kullanılarak kurulabilir ve Python 2 ve 3'e kurulabilir. pip2 durumunda, xmltodict modülünü kurmak için aşağıdaki komutu yürütün:





pip yükleme xmltodict

pip3 kullanıyorsanız, xmltodict modülünü kurmak için aşağıdaki komutu çalıştırın:

pip3 xmltodict yükleyin



Debian tabanlı sistem olması durumunda, xmltodict modülünü kurmak için aşağıdaki komutu çalıştırın:

sudo apt yükleme python-xmltodict

Yukarıda verilen komut Python2 için uygundur. Python3 sürümü durumunda, aşağıdaki komutu çalıştırın:

sudo apt yükleme python3-xmltodict

XML'den JSON'a dönüştürme

Şimdi XML verilerini JSON formatına çevirelim. Bu dönüşüm için xmltodict ve JSON modülünü kullanacağız. Json, yerleşik bir Python modülüdür. Bu nedenle, bunları yükleme ihtiyacı ortadan kalkar. xmltodict.parse() işlevi, XML verilerini Python sözlüğüne dönüştürür. Ardından, json.dumps() işlevi, dönüştürülmüş sözlük nesnesini bir argüman olarak alır ve daha sonra onu JSON biçimine dönüştürür. Yani bu iki adımlı bir süreçtir:

İlk önce xmltodict.parse() işlevini kullanarak XML'i Python sözlük nesnesine dönüştürmemiz gerekiyor.

İkinci olarak, json.dumps() fonksiyonunu kullanarak Python sözlük nesnesini JSON formatına çeviriyoruz. json.dumps() işlevinde, veriler arasına boşluk eklemek için indent özelliği kullanılır.

#modülleri içe aktarma
içe aktarmakxmltodict
içe aktarmakjson
#xml'yi bildirme
my_xml= '''


1
Marais Bahçeleri
3
internet
NS


2
Altın Lale Küçük Saray
4

internet
Jimnastik
Otopark
Restoran

YANLIŞ


'''

#coverting xml'den Python sözlüğüne
dict_data=xmltodict.ayrıştırmak(my_xml)
#json'a gizlenme
json_data=json.çöplükler(dict_data,girinti=2)
Yazdır(json_data)

Çıktı

Çıktı, XML'in başarıyla JSON biçimine dönüştürüldüğünü gösterir.

XML dosyasından JSON dosyasına dönüştürme

XML dosyaları verileri dönüştürülebilir ve JSON dosyasına kaydedilebilir. XML dosyasını açalım, XML verilerini JSON'a çevirelim ve bir JSON dosyasında saklayalım.

Aşağıdaki XML dosyasıdır.

#modülleri içe aktarma
içe aktarmakjson
içe aktarmakxmltodict
#xml dosyasını açma
ile birlikte açık('oteller.xml','r') olarakxmlfileObj:
#xml verilerini sözlüğe dönüştürme
data_dict=xmltodict.ayrıştırmak(xmlfileObj.okuman())
xmlfileObj.kapat()
#sözlük nesnesini kullanarak JSON nesnesi oluşturma
jsonObj=json.çöplükler(data_dict)

#json verilerini json dosyasına kaydetme
ile birlikte açık('oteller.json', 'içinde') olarakjsonfileObj:
jsonfileObj.yazı yazmak(jsonObj)
jsonfileObj.kapat()

Çıktı

Python yorumlayıcısı herhangi bir hata göstermiyor; bu, JSON verilerinin bir .json dosyasına başarıyla kaydedildiği anlamına gelir.

Çözüm

XML ve JSON, verileri depolamak için kullanılan iki popüler veri biçimidir. XML verileri, xmltodict ve JSON modülü kullanılarak JSON formatına dönüştürülebilir. Bu makale XML'den JSON'a veri dönüştürmeyi örneklerle açıklamaktadır.