Python XML to JSON

Python Xml Json



Η Extensible Markup Language (XML) και η JavaScript Object Notation (JSON) είναι δύο διάσημες μορφές δεδομένων για την αποθήκευση δεδομένων. Τόσο το JSON όσο και το XML μας επιτρέπουν να αποθηκεύουμε τα δεδομένα με τέτοιο τρόπο ώστε να είναι ευανάγνωστα τόσο από ανθρώπους όσο και από μηχανές. Αρχικά, το JSON είναι ένας τύπος δομής δεδομένων που χρησιμοποιείται κυρίως για την ανταλλαγή δεδομένων μεταξύ διακομιστών και εφαρμογών λογισμικού. Αποθηκεύει τα δεδομένα ως ζεύγη κλειδιού-τιμής. Το JSON δημιουργεί ένα αντικείμενο των δεδομένων όπου τα ζεύγη κλειδιού-τιμής διαχωρίζονται με βάση την άνω τελεία (:), και ένα πλήρες ζεύγος τιμής κλειδιού που διαχωρίζεται από άλλα με βάση το κόμμα.







Επιπλέον, η XML είναι μια γλώσσα σήμανσης τύπου HTML που χρησιμοποιείται επίσης για την αποθήκευση των δεδομένων. Όμως, η XML δεν παρέχει κανενός είδους προκαθορισμένες ετικέτες. Μπορούμε να δημιουργήσουμε τις δικές μας ετικέτες και να αποθηκεύσουμε τα δεδομένα. Όπως συζητήσαμε, τόσο το JSON όσο και το XML χρησιμοποιούνται για την ανταλλαγή δεδομένων μεταξύ των διακομιστών και των εφαρμογών λογισμικού. Ωστόσο, οι δύο μορφές δεδομένων διαφέρουν κάπως. Το JSON είναι μορφή αποθήκευσης δεδομένων τύπου αντικειμένου, ενώ η XML δεν έχει τύπο. Τα αρχεία XML αποθηκεύουν τα δεδομένα μόνο σε μορφή συμβολοσειράς και βαρύτερα από το αρχείο JSON. Ενώ τα αρχεία JSON μπορούν να αποθηκεύσουν τη συμβολοσειρά, τους πίνακες, τους αριθμούς των κυμαινόμενων σημείων και το Boolean.



Αυτό το άρθρο εξηγεί τη μετατροπή XML σε JSON χρησιμοποιώντας Python. Η ενότητα Python xmltodict χρησιμοποιείται για τη μετατροπή της μορφής XML σε μορφή JSON.



Η εγκατάσταση της μονάδας xmltodict

Πριν ξεκινήσουμε τη μετατροπή XML σε JSON, πρέπει να εγκαταστήσουμε την ενότητα xmltodict. Η μονάδα xmltodict μπορεί να εγκατασταθεί χρησιμοποιώντας το πακέτο ευρετηρίου python (pip) και μπορεί να εγκατασταθεί σε Python 2 και 3. Στην περίπτωση του pip2, εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε το module xmltodict:





pip εγκατάσταση xmltodict

Εάν χρησιμοποιείτε pip3, εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε τη μονάδα xmltodict:

pip3 εγκατάσταση xmltodict



Στην περίπτωση του συστήματος που βασίζεται στο Debian, εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε τη μονάδα xmltodict:

sudo apt install python-xmltodict

Η παραπάνω εντολή είναι κατάλληλη για Python2. Στην περίπτωση της έκδοσης Python3, εκτελέστε την ακόλουθη εντολή:

sudo apt install python3-xmltodict

Μετατροπή XML σε JSON

Τώρα ας μετατρέψουμε τα δεδομένα XML σε μορφή JSON. Θα χρησιμοποιήσουμε την ενότητα xmltodict και JSON για αυτήν τη μετατροπή. Το json είναι μια ενσωματωμένη μονάδα Python. Επομένως, εξαλείφεται η ανάγκη εγκατάστασής τους. Η συνάρτηση xmltodict.parse () μετατρέπει τα δεδομένα XML σε λεξικό Python. Στη συνέχεια, η συνάρτηση json.dumps () παίρνει το μετατρεπόμενο αντικείμενο λεξικού ως όρισμα και το μετατρέπει περαιτέρω σε μορφή JSON. Αυτή είναι λοιπόν μια διαδικασία δύο βημάτων:

Πρώτα πρέπει να μετατρέψουμε το XML σε αντικείμενο λεξικού Python χρησιμοποιώντας τη συνάρτηση xmltodict.parse ().

Δεύτερον, μετατρέπουμε το αντικείμενο λεξικού Python σε μορφή JSON χρησιμοποιώντας τη λειτουργία json.dumps (). Στη συνάρτηση json.dumps (), η ιδιότητα εσοχής χρησιμοποιείται για να προσθέσει κενά μεταξύ των δεδομένων.

#εισαγωγή των ενοτήτων
εισαγωγήxmltodict
εισαγωγήjson
#δήλωση του xml
my_xml= '' ''


1
Οι κήποι του Μαρέ
3
Διαδίκτυο
Αληθής


2
Μικρό παλάτι Golden Tulip
4

Διαδίκτυο
Γυμναστήριο
Στάθμευση
Εστιατόριο

Ψευδής


'' ''

#coverting xml στο λεξικό Python
dict_data=xmltodict.αναλύω πρόταση(my_xml)
#coverting στο json
json_data=json.κατήφεια(dict_data,οδοντώ=2)
Τυπώνω(json_data)

Παραγωγή

Η έξοδος δείχνει ότι η XML μετατράπηκε με επιτυχία σε μορφή JSON.

Μετατροπή αρχείου XML σε αρχείο JSON

Τα δεδομένα αρχείων XML μπορούν να μετατραπούν και να αποθηκευτούν στο αρχείο JSON. Ας ανοίξουμε το αρχείο XML, να μετατρέψουμε τα δεδομένα XML σε JSON και να τα αποθηκεύσουμε σε ένα αρχείο JSON.

Ακολουθεί το αρχείο XML.

#εισαγωγή των ενοτήτων
εισαγωγήjson
εισαγωγήxmltodict
# άνοιγμα του αρχείου xml
με Άνοιξε('hotels.xml','r') όπως καιxmlfileObj:
#μετατροπή δεδομένων xml σε λεξικό
data_dict=xmltodict.αναλύω πρόταση(xmlfileObj.ανάγνωση())
xmlfileObj.Κλείσε()
#δημιουργώντας αντικείμενο JSON χρησιμοποιώντας αντικείμενο λεξικού
jsonObj=json.κατήφεια(data_dict)

#αποθήκευση δεδομένων json σε αρχείο json
με Άνοιξε('hotels.json', 'σε') όπως καιjsonfileObj:
jsonfileObj.γράφω(jsonObj)
jsonfileObj.Κλείσε()

Παραγωγή

Ο διερμηνέας Python δεν εμφανίζει κανένα σφάλμα. σημαίνει ότι τα δεδομένα JSON αποθηκεύονται με επιτυχία σε ένα αρχείο .json.

συμπέρασμα

Οι XML και JSON είναι δύο δημοφιλείς μορφές δεδομένων για την αποθήκευση δεδομένων. Τα δεδομένα XML μπορούν να μετατραπούν σε μορφή JSON χρησιμοποιώντας την ενότητα xmltodict και JSON. Αυτό το άρθρο εξηγεί τη μετατροπή δεδομένων XML σε JSON με παραδείγματα.