Konvertieren Sie XML in JSON in Python

Muhammad Waiz Khan 24 März 2022
Konvertieren Sie XML in JSON in Python

In diesem Tutorial werden wir uns mit der Methode zum Konvertieren von XML in JSON in Python befassen. Das JSON-Format ist einfacher zu lesen und zu schreiben als das XML-Format. Sein kompakter Stil und sein geringes Gewicht verbessern auch die Systemleistung, insbesondere bei RESTful-APIs. Da JSON in vielerlei Hinsicht besser als XML ist, wird es in vielen Bereichen als Ersatz für XML verwendet.

Angenommen, wir haben Daten im XML-Format gespeichert und möchten sie in das JSON-Format konvertieren. Mit der folgenden Methode können wir die XML-Daten in Python in JSON konvertieren.

Konvertieren von XML in Python mit dem Modul xmltodict in JSON

In Python haben wir die Methode json.dumps(obj), die Daten als obj-Argument verwendet und sie als JSON-formatierten Stream serialisiert und die formatierten Daten als Ausgabe zurückgibt.

Das Argument obj kann ein Dictionary, eine Zeichenkette, eine Liste oder ein Tupel usw. sein. Die Methode json.dumps() konvertiert das Objekt obj gemäß seinem Datentyp. Wenn wir beispielsweise ein JSON-Objekt benötigen, müssen wir die Eingabe als Dictionary bereitstellen, da die Methode json.dumps() das Dictionary in das JSON-Objekt konvertiert. Der Listen- oder Tupeltyp wird in ein JSON-Array und der Zeichenkettentyp in eine JSON-Zeichenkette konvertiert.

Wir können die Methode xmltodict.parse() verwenden, um die XML-Daten in den Datentyp des Python-Dictionaries zu konvertieren. Die Methode xmltodict.parse() verwendet Daten im XML-Format als Zeichenkette, analysiert die Daten und gibt die Ausgabe als Dictionary zurück.

Nach dem Konvertieren der Daten in ein Dictionary mit der Methode xmltodict.parse() können wir die Daten mit der Methode json.dumps() in das JSON-Objekt konvertieren.

Der folgende Beispielcode zeigt, wie die XML-Daten mit den Methoden json.dumps() und xmltodict.parse() in Python in JSON konvertiert werden.

import xmltodict
import json

dictionary = xmltodict.parse(
    """<note>
  <date>2021-03-07</date>
  <time>15:23</time>
  <to>Sara</to>
  <from>Khan</from>
  <msg>Let's meet this weekend!</msg>
</note>"""
)
json_object = json.dumps(dictionary)
print(json_object)

Ausgabe:

{"note": {"date": "2021-03-07", "time": "15:23", "to": "Sara", "from": "Khan", "msg": "Let's meet this weekend!"}}

Verwandter Artikel - Python XML

Verwandter Artikel - Python JSON