In diesem Tutorial lernen Sie anhand von Beispielen, JSON in Python zu analysieren, zu lesen und zu schreiben. Außerdem lernen Sie, JSON so zu konvertieren, dass es diktiert und hübsch gedruckt wird.
JSON ( J ava S cript O bject N otation) ist ein beliebtes Datenformat zur Darstellung strukturierter Daten. Es ist üblich, Daten zwischen einem Server und einer Webanwendung im JSON-Format zu senden und zu empfangen.
In Python existiert JSON als Zeichenfolge. Beispielsweise:
p = '("name": "Bob", "languages": ("Python", "Java"))'
Es ist auch üblich, ein JSON-Objekt in einer Datei zu speichern.
Json-Modul importieren
Um mit JSON (Zeichenfolge oder Datei mit JSON-Objekt) zu arbeiten, können Sie das Python- json
Modul verwenden. Sie müssen das Modul importieren, bevor Sie es verwenden können.
import json
Analysieren Sie JSON in Python
Das json
Modul erleichtert das Parsen von JSON-Zeichenfolgen und -Dateien, die JSON-Objekte enthalten.
Beispiel 1: Python JSON zum Diktieren
Sie können eine JSON-Zeichenfolge mithilfe der json.loads()
Methode analysieren . Die Methode gibt ein Wörterbuch zurück.
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'))
Hier ist person eine JSON-Zeichenfolge und person_dict ist ein Wörterbuch.
Beispiel 2: Python liest JSON-Datei
Mit der json.load()
Methode können Sie eine Datei lesen, die ein JSON-Objekt enthält.
Angenommen, Sie haben eine Datei mit dem Namen, person.json
die ein JSON-Objekt enthält.
("name": "Bob", "languages": ("English", "Fench") )
So können Sie diese Datei analysieren:
import json with open('path_to_file/person.json') as f: data = json.load(f) # Output: ('name': 'Bob', 'languages': ('English', 'Fench')) print(data)
Hier haben wir die open()
Funktion zum Lesen der JSON-Datei verwendet. Dann wird die Datei mit einer json.load()
Methode analysiert, die uns ein Wörterbuch mit dem Namen data gibt.
Wenn Sie nicht wissen, wie man Dateien in Python liest und schreibt, empfehlen wir Ihnen, Python File I / O zu überprüfen.
Python In JSON-Zeichenfolge konvertieren
Sie können ein Wörterbuch mithilfe der json.dumps()
Methode in eine JSON-Zeichenfolge konvertieren .
Beispiel 3: Diktat in JSON konvertieren
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)
Hier ist eine Tabelle mit Python-Objekten und ihrer entsprechenden Konvertierung in JSON.
Python | JSON-Äquivalent |
---|---|
dict | Objekt |
list , tuple | Array |
str | Zeichenfolge |
int , float ,int | Nummer |
True | wahr |
False | falsch |
None | Null |
JSON in eine Datei schreiben
Um JSON in eine Datei in Python zu schreiben, können wir die json.dump()
Methode verwenden.
Beispiel 4: JSON in eine Datei schreiben
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)
Im obigen Programm haben wir eine Datei mit dem Namen person.txt
im Schreibmodus mit geöffnet 'w'
. Wenn die Datei noch nicht vorhanden ist, wird sie erstellt. Dann json.dump()
verwandelt sich person_dict
in eine JSON - Zeichenfolge , die in der gespeichert werden soll person.txt
Datei.
Wenn Sie das Programm ausführen, wird die person.txt
Datei erstellt. Die Datei enthält folgenden Text.
("name": "Bob", "languages": ("English", "Fench"), "married": true, "age": 32)
Python hübsch drucken JSON
Um JSON-Daten zu analysieren und zu debuggen, müssen wir sie möglicherweise in einem besser lesbaren Format drucken. Dies kann durch Übergabe zusätzlicher Parameter indent
und sort_keys
an json.dumps()
und json.dump()
Methode erfolgen.
Beispiel 5: Python hübsch drucken 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))
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
("Sprachen": "Englisch", "Name": "Bob", "Zahlen": (2, 1,6, null))
Im obigen Programm haben wir 4
Leerzeichen zum Einrücken verwendet. Die Schlüssel sind in aufsteigender Reihenfolge sortiert.
Der Standardwert für Einzug ist übrigens None
. Der Standardwert von sort_keys ist False
.
Empfohlene Lektüre:
- Python JSON zu CSV und umgekehrt
- Python XML zu JSON und umgekehrt
- Python simplejson