Python JSON: Lesen, Schreiben, Analysieren von JSON (mit Beispielen)

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- jsonModul verwenden. Sie müssen das Modul importieren, bevor Sie es verwenden können.

 import json

Analysieren Sie JSON in Python

Das jsonModul 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.jsondie 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.txtim Schreibmodus mit geöffnet 'w'. Wenn die Datei noch nicht vorhanden ist, wird sie erstellt. Dann json.dump()verwandelt sich person_dictin eine JSON - Zeichenfolge , die in der gespeichert werden soll person.txtDatei.

Wenn Sie das Programm ausführen, wird die person.txtDatei 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 indentund sort_keysan 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 4Leerzeichen 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

Interessante Beiträge...