JSON (JavaScript Object Notation) ist ein beliebtes Format zum Speichern und Austauschen von Daten. Es wird aufgrund seines kompakten und für Menschen lesbaren Formats in Webanwendungen, APIs und Datenbanken verwendet. JSON strukturiert Daten in Schlüssel-Wert-Paaren, sodass es plattformübergreifend problemlos verwendet werden kann.

In Python ist das Arbeiten mit JSON-Dateien dank der integrierten Bibliotheken von Python, wie z. B. json, die das einfache Lesen, Analysieren und Verarbeiten von JSON-Daten ermöglichen, einfach. Egal, ob Sie mit lokalen Dateien arbeiten oder Daten von einem Webdienst abrufen, Python verfügt über Tools zum problemlosen Umgang mit JSON-Daten.

In diesem Artikel erfahren Sie, wie Sie JSON-Dateien in Python lesen, JSON-Daten laden und analysieren und mit ihren Strukturen arbeiten. Sie erfahren auch, wie Sie JSON-Daten ändern und schreiben. Legen wir los!

Hier ist ein einfaches Tutorial zum Lesen von JSON-Dateien in Python:

Inhaltsverzeichnis

  1. Was sind JSON-Dateien?
  2. Laden von JSON-Daten in Python
  • Die richtigen json.load() zum Lesen von JSON aus einer Datei
  • Lesen von JSON aus einem String mit json.loads()
  1. Allgemeine Operationen mit JSON in Python
  • Auf verschachtelte Daten zugreifen
  • Ändern von JSON-Daten
  • Schreiben von JSON-Daten in eine Datei mit json.dump()
  1. Fehlerbehandlung beim Lesen von JSON-Dateien
  2. Abschließende Überlegungen
  3. Häufig gestellte Fragen (FAQs)

Was sind JSON-Dateien?

Eine JSON-Datei (JavaScript Object Notation-Datei) ist eine Textdatei, die zum Speichern und Austauschen von Daten verwendet wird. Sie speichert Daten strukturiert und lesbar, indem sie Schlüssel-Wert-Paare verwendet, wobei jeder Schlüssel einem Wert zugeordnet ist. Dies erleichtert Menschen und Maschinen das Lesen und Schreiben von Daten. JSON wird in Webanwendungen, APIs und Konfigurationen verwendet, da es leichtgewichtig und einfach zu verwenden ist. Das Verständnis von JSON-Dateien ist ein wesentlicher Bestandteil von Schulung technischer Fähigkeiten für Fachleute in Bereichen wie Softwareentwicklung, Datenmanagement und Webentwicklung, da es hilft, den Datenaustausch zwischen Systemen zu optimieren und die Projekteffizienz zu verbessern.

Hier ist ein Beispiel für eine einfache JSON-Datei:

1
2
3
4
5
6
{
"Name": "Jane Smith",
"Alter": 28,
"istEntwickler": was immer dies auch sein sollte.,
"Sprachen": ["Python", "JavaScript", "SQL"]
}

In diesem Beispiel enthält die Datei Informationen über eine Person namens „Jane Smith“, die 28 Jahre alt und Entwicklerin ist. languages Key verfügt über eine Reihe von Programmiersprachen, die sie kennt.

Mit Python können Sie JSON-Dateien sofort lesen, schreiben und speichern. Sehen wir uns an, wie das geht.

Laden von JSON-Daten in Python

Dank des integrierten JSON-Moduls ist das Laden von JSON in Python ganz einfach. Unabhängig davon, ob sich JSON in einer Datei oder einem String befindet, verfügt Python über Methoden zum Laden und Parsen. In diesem Abschnitt werden zwei Möglichkeiten zum Laden von JSON behandelt: aus einer Datei und aus einem String.

Die richtigen json.load() zum Lesen von JSON aus einer Datei

Wenn Sie mit einer JSON-Datei in Python arbeiten, können Sie verwenden json.load() um die Daten direkt aus der Datei zu laden. Diese Methode liest die Datei und analysiert sie in ein Python-Objekt (normalerweise ein Wörterbuch).

Hier ist ein Beispiel zum Lesen einer JSON-Datei:

1
2
3
4
5
6
7
8
importieren JSON

# Öffnen Sie die JSON-Datei und laden Sie ihren Inhalt
mit XNUMXh geöffnet('Daten.json', 'r') as Datei:
data = json.load (Datei)

# Drucken Sie die analysierten Daten
drucken(Daten)

In diesem Code verwenden wir open() Funktion zum Öffnen der Datei im Lesemodus (‘r’) und übergeben Sie dann das Dateiobjekt an json.load() um das JSON zu lesen und in ein Python-Wörterbuch zu analysieren. Anschließend können Sie mithilfe der Schlüssel auf die Daten zugreifen.

Zum Beispiel, wenn Ihr data.json Die Datei enthält Folgendes:

1
2
3
4
5
{
"Name": "Alice",
"Alter": 25,
„ist beschäftigt“: was immer dies auch sein sollte.
}

Der Ausgang wird:

1
{'Süßkartoffel': 'Alice', 'Alter': 25, „ist beschäftigt“: Wahre}

Lesen von JSON aus einem String mit json.loads()

Wenn das JSON eine Zeichenfolge ist, können Sie verwenden json.loads() um es zu analysieren. Dies ist nützlich, wenn Sie mit JSON-Daten arbeiten, die von einer API oder einer anderen externen Quelle abgerufen wurden.

Hier ist ein Beispiel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
importieren JSON

# JSON-Zeichenfolge

json_zeichenfolge = '{"Produkt": "Laptop", "Preis": 999, "auf Lager": true}'

# Analysieren Sie die Zeichenfolge in ein Python-Wörterbuch

Daten = json.loads(json_string)

# Drucken Sie die analysierten Daten

drucken(Daten)

In diesem Beispiel json.loads() nimmt den JSON-String und wandelt ihn in ein Python-Wörterbuch um. Sie können dann auf die Daten zugreifen, als kämen sie aus einer Datei.

Die Ausgabe lautet beispielsweise:

1
{'Produkt': 'Laptop', 'Preis': 999, 'auf Lager': Wahre}

Als Nächstes behandeln wir die allgemeinen Operationen, die Sie mit JSON in Python durchführen können.

Allgemeine Operationen mit JSON in Python

Nachdem Sie JSON-Daten in Python geladen haben, können Sie damit verschiedene Dinge tun, z. B. auf verschachtelte Daten zugreifen, sie ändern und die Änderungen wieder in einer Datei speichern. Lassen Sie uns diese anhand einfacher Beispiele nacheinander durchgehen.

Auf verschachtelte Daten zugreifen

JSON-Daten haben oft verschachtelte Strukturen wie Wörterbücher in Wörterbüchern oder Listen in Listen. Der Zugriff auf diese verschachtelten Daten in Python ist mithilfe von Schlüssel-Wert-Zugriff oder Listenindizierung einfach.

Beispiel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
importieren JSON

# Beispiel-JSON-Daten
json_daten = '' '
{
"name": "Alice",
"Alter": 25,
"Adresse": {
"Stadt": "New York",
"Postleitzahl": "10001"
},
"Fähigkeiten": ["Python", "Maschinelles Lernen"]
}
'' '

# Analysieren Sie die JSON-Daten
Daten = json.loads(json_data)

# Auf verschachtelte Daten zugreifen
Stadt = Daten['Adresse']['Stadt']
Fähigkeit = Daten['Fähigkeiten'][0]

drucken(f"Stadt: {Stadt}")
drucken(f"Erste Fähigkeit: {Fähigkeit}")

Hier:

  • Wir laden zunächst den JSON-String mit json.loads().
  • Wir greifen auf verschachtelte Daten zu, wie zum Beispiel die city innerhalb der address Wörterbuch und die erste Fähigkeit aus dem skills Liste.

Ändern von JSON-Daten

Sie können JSON-Daten nach dem Laden problemlos in Python ändern. Änderungen können das Aktualisieren von Werten, das Hinzufügen neuer Daten oder das Entfernen vorhandener Schlüssel umfassen.

Beispiel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
importieren JSON

# Beispiel-JSON-Daten
json_daten = '' '
{
"name": "Alice",
"Alter": 25,
"Adresse": {
"Stadt": "New York",
"Postleitzahl": "10001"
}
}
'' '

# Analysieren Sie die JSON-Daten
Daten = json.loads(json_data)

# Ändere das Alter und füge eine neue Fähigkeit hinzu
Daten['Alter'] = 26
Daten['Fähigkeiten'] = ["Python", "Datenwissenschaft"]

# Die geänderten Daten ausdrucken
drucken(json.dumps(Daten, Einzug=4))

In diesem Beispiel:

  • Wir modifizieren die age Wert von 25 bis 26.
  • Wir fügen einen neuen Schlüssel hinzu skills mit einem Array von Werten.
  • Die json.dumps() Die Funktion wird verwendet, um die geänderten JSON-Daten in einem lesbaren Format mit Einrückungen auszudrucken.

Schreiben von JSON-Daten in eine Datei mit json.dump()

Nachdem Sie JSON-Daten geändert haben, möchten Sie diese möglicherweise wieder in einer Datei speichern. Mithilfe der Funktion json.dump() können Sie die Daten im JSON-Format wieder in eine Datei schreiben.

Beispiel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
importieren JSON

# Beispieldaten zum Schreiben in eine Datei
Daten = {
"Name": "Alice",
"Alter": 26,
"Adresse": {
"Stadt": "New York",
"PLZ": "10001"
},
"Fähigkeiten": ["Python", "Datenwissenschaft"]
}

# JSON-Daten in eine Datei schreiben
mit XNUMXh geöffnet(„modifizierte_daten.json“, 'w') as Datei:
json.dump(Daten, Datei, Einzug=4)

drucken(„JSON-Daten erfolgreich in Datei geschrieben.“)

In diesem Beispiel:

  • Wir ändern und organisieren die Daten in einem Python-Wörterbuch.
  • Die json.dump() Methode schreibt die Daten in eine Datei namens modified_data.json.
  • Die indent=4 Der Parameter macht die JSON-Datei durch Hinzufügen einer Einrückung lesbar.

Das Erlernen dieser allgemeinen Vorgänge (Zugriff auf verschachtelte Daten, deren Änderung und Speicherung in einer Datei) ist für die Arbeit mit JSON-Dateien in Python sehr wichtig. Sie ermöglichen Ihnen die Bearbeitung und Organisation Ihrer Daten für viele Anwendungsfälle.

Als Nächstes behandeln wir die Fehlerbehandlung beim Lesen von JSON-Dateien, damit Ihre Programme nicht abstürzen.

Fehlerbehandlung beim Lesen von JSON-Dateien

Wenn Sie mit JSON-Daten in Python arbeiten, müssen Sie Fehler behandeln, die beim Lesen oder Parsen von JSON-Dateien auftreten können. Fehler können aus vielen Gründen auftreten, beispielsweise aufgrund einer ungültigen JSON-Syntax, falscher Dateipfade oder Probleme mit der Dateicodierung. Eine ordnungsgemäße Fehlerbehandlung stellt sicher, dass Ihr Python-Skript reibungslos ausgeführt wird und unerwartete Fehler behoben werden können.

Lassen Sie uns einige häufige Fehler untersuchen und wie man sie in Python effektiv behebt.

Behandeln des Fehlers „Datei nicht gefunden“.

Wenn die angegebene JSON-Datei nicht existiert oder der Dateipfad falsch ist, gibt Python eine FileNotFoundError. Sie können eine verwenden try-except Block, um diesen Fehler abzufangen und eine benutzerfreundliche Meldung anzuzeigen.

Beispiel:

1
2
3
4
5
6
7
8
importieren JSON

versuchen:
# Versuch, eine nicht vorhandene Datei zu öffnen
mit XNUMXh geöffnet('Daten.json', 'r') as Datei:
data = json.load (Datei)
ausgeschlossen Fehler „Datei nicht gefunden“:
drucken(„Fehler: Die Datei wurde nicht gefunden. Bitte überprüfen Sie den Dateipfad.“)

In diesem Code:

  • Wir versuchen zu lesen, data.json Datei.
  • Wenn die Datei nicht existiert, FileNotFoundError wird abgefangen und eine aussagekräftige Fehlermeldung ausgegeben.

Umgang mit ungültiger JSON-Syntax

Wenn die JSON-Datei ungültige Syntax enthält (z. B. fehlende Kommas, Klammern oder eckige Klammern), gibt Python eine json.JSONDecodeError. Sie können diesen Fehler beheben, indem Sie try-except Block, um zu verhindern, dass Ihr Programm abstürzt.

Beispiel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
importieren JSON

invalid_json = '' '
{
"name": "Alice",
"Alter": 25,
"Adresse": {
"Stadt": "New York"
} # Fehlende schließende Klammer
'' '

versuchen:
# Versuch, ungültiges JSON zu analysieren
Daten = json.loads(ungültiges_json)
ausgeschlossen json.JSONDecodeError as e:
drucken(f"Fehler: Ungültiges JSON-Format. {e}")

Hier:

  • Die invalid_json In der Zeichenfolge fehlt eine schließende Klammer.
  • Die json.JSONDecodeError wird abgefangen und eine Fehlermeldung mit der Angabe des Problems ausgedruckt.

Umgang mit falscher Dateikodierung

Manchmal kann die JSON-Datei mit einer anderen Kodierung als UTF-8 gespeichert werden, was beim Lesen der Datei zu Dekodierungsfehlern führen kann. Pythons UnicodeDecodeError behandelt solche Fälle und Sie können beim Öffnen der Datei die richtige Kodierung angeben, um Probleme zu vermeiden.

Beispiel:

1
2
3
4
5
6
7
8
importieren JSON

versuchen:
# Öffnen Sie eine Datei mit einer bestimmten Kodierung
mit XNUMXh geöffnet('Daten.json', 'r', Kodierung='utf-8') as Datei:
data = json.load (Datei)
ausgeschlossen UnicodeDecodeError:
drucken(„Fehler: Die Datei konnte nicht dekodiert werden. Bitte überprüfen Sie die Kodierung der Datei.“)

In diesem Code:

  • Wir spezifizieren encoding='utf-8' beim Lesen der Datei.
  • Wenn es ein Problem mit der Dateikodierung gibt, UnicodeDecodeError wird abgefangen und eine entsprechende Fehlermeldung angezeigt.

Allgemeine Ausnahmebehandlung

Sie können auch eine allgemeine except Block, um andere unerwartete Fehler abzufangen, die beim Lesen oder Arbeiten mit JSON-Dateien auftreten können.

Beispiel:

1
2
3
4
5
6
7
8
importieren JSON

versuchen:
# Versuch, die JSON-Datei zu lesen
mit XNUMXh geöffnet('Daten.json', 'r') as Datei:
data = json.load (Datei)
ausgeschlossen Exception as e:
drucken(f"Ein unerwarteter Fehler ist aufgetreten: {e}")

Dieser Code:

  • Verwendet einen allgemeinen Exception um alle Fehler abzufangen, die nicht in bestimmte Kategorien fallen.
  • Druckt die Fehlermeldung, um die Identifizierung des Problems zu erleichtern.

Die Fehlerbehandlung ist ein wesentlicher Bestandteil der Arbeit mit JSON-Dateien, da sie Ihnen hilft, Probleme wie fehlende Dateien, falsche Formate und Kodierungsprobleme zu bewältigen. Indem Sie diese Fehler frühzeitig erkennen, können Sie sicherstellen, dass Ihre Python-Skripte reibungsloser ausgeführt werden und einfacher zu debuggen sind.

Abschließende Überlegungen

Das Lesen und Arbeiten mit JSON-Dateien in Python ist eine wichtige Fähigkeit für Entwickler, insbesondere beim Umgang mit APIs, Webanwendungen oder Datenspeichern. Das in Python integrierte JSON-Modul erleichtert die Handhabung von JSON-Daten, egal ob Sie aus einer Datei lesen, eine Zeichenfolge analysieren oder die Daten ändern.

Indem Sie lernen, wie Sie JSON-Daten in Python laden, bearbeiten und schreiben, können Sie strukturierte Daten in Ihren Projekten effizient verwalten. Aufgrund seiner Flexibilität und Lesbarkeit ist JSON heute eines der am weitesten verbreiteten Formate. Mit den Tools von Python können Sie es problemlos in jede Anwendung integrieren.

Mit den in diesem Blog besprochenen Techniken sollten Sie gut gerüstet sein, um JSON-Daten in Ihren Python-Projekten zu verarbeiten, unabhängig von der Komplexität der Datenstrukturen. Weitere Tutorials wie diese finden Sie in unserem Blog. Wenn Sie Fragen oder Feedback haben, unsere Support-Team ist hier, um Ihnen zu helfen.

Häufig gestellte Fragen (FAQs)

F. Was ist der Unterschied zwischen json.load() und json.loads() bei Python?

json.load() wird zum Lesen und Parsen von JSON-Daten aus einer Datei verwendet, während json.loads() wird verwendet, um JSON-Daten aus einem String zu analysieren. Die s in json.loads() steht für „String“ (Zeichenfolge) und ist daher nützlich, wenn Sie JSON-Daten als Zeichenfolge und nicht in einer Datei haben.

Wie konvertiere ich eine JSON-Zeichenfolge in ein Python-Objekt?

Sie können eine JSON-Zeichenfolge in ein Python-Objekt konvertieren mit json.loads(). Diese Funktion analysiert die JSON-Zeichenfolge und gibt ein Python-Wörterbuch oder eine Liste zurück.

Ejemplo:

1
2
3
4
5
importieren JSON

json_zeichenfolge = '{"Name": "John", "Alter": 30}'
Daten = json.loads(json_string)
drucken(Daten)

F: Wie schreibe ich JSON-Daten in Python in eine Datei?

Um JSON-Daten in eine Datei zu schreiben, verwenden Sie json.dump(). Öffnen Sie die Datei im Schreibmodus und übergeben Sie dann das Python-Objekt und die Datei an json.dump() um die JSON-Daten in der Datei zu speichern.

Ejemplo:

1
2
3
4
5
6
importieren JSON

Daten = {"Name": "John", "Alter": 30}

mit XNUMXh geöffnet('Daten.json', 'w') as Datei:
json.dump(Daten, Datei)

F: Wie behandle ich Fehler bei der Arbeit mit JSON in Python?

Häufige Fehler bei der Arbeit mit JSON sind ungültiges JSON-Format oder falsche Dateipfade. Um diese zu beheben, können Sie Pythons try-except Blöcke zum Abfangen von Ausnahmen wie json.JSONDecodeError or FileNotFoundError.

Ejemplo:

1
2
3
4
5
6
7
8
9
importieren JSON

versuchen:
mit XNUMXh geöffnet('Daten.json', 'r') as Datei:
data = json.load (Datei)
ausgeschlossen Fehler „Datei nicht gefunden“:
drucken("Datei nicht gefunden!")
ausgeschlossen json.JSONDecodeError:
drucken("Ungültiges JSON-Format!")