So arbeiten Sie mit JSON-Daten mithilfe von Python

Dieses Tutorial zeigt, wie einfach es ist, die Python-Programmiersprache für die Arbeit mit JSON-Daten zu verwenden.

Bevor ich mit dem Thema beginne, wollen wir kurz definieren, was wir unter JSON verstehen. Mal sehen, wie die Haupt-Website von JSON es definiert:

JSON (JavaScript Object Notation) ist ein leichtes Format für den Datenaustausch. Es ist für Menschen einfach zu lesen und zu schreiben. Maschinen können leicht analysiert und generiert werden. Es basiert auf einer Teilmenge der JavaScript-Programmiersprache Standard ECMA-262 3rd Edition - Dezember 1999. JSON ist ein Textformat, das vollständig sprachunabhängig ist, jedoch Konventionen verwendet, die Programmierern der C-Sprachfamilie, einschließlich C, vertraut sind , C ++, C #, Java, JavaScript, Perl, Python und viele andere. Diese Eigenschaften machen JSON zu einer idealen Sprache für den Datenaustausch.

Daher ist JSON eine einfache Möglichkeit, Datenstrukturen in JavaScript zu erstellen und zu speichern. Der Grund, warum Sie in der Abkürzung JavaScript sehen, ist darauf zurückzuführen, dass beim Speichern von Daten mit JSON ein JavaScript-Objekt erstellt wird. Aber machen Sie sich keine Sorgen, Sie müssen kein JavaScript kennen, um mit JSON-Dateien arbeiten zu können. Vielmehr handelt es sich um die JSON-Syntax (Format).

Kurz gesagt, JSON ist ein Weg, auf dem wir Daten speichern und austauschen, was durch ihre Syntax erreicht wird und in vielen Webanwendungen verwendet wird. Das Schöne an JSON ist, dass es ein von Menschen lesbares Format hat. Dies kann einer der Gründe für die Verwendung bei der Datenübertragung sein, zusätzlich zu seiner Effektivität beim Arbeiten mit APIs.

Ein Beispiel für JSON-formatierte Daten lautet wie folgt:

"name": "Frank", "age": 39, "isEmployed": true

In diesem Tutorial zeige ich Ihnen, wie Sie Python verwenden, um mit JSON-Dateien zu arbeiten. Also lasst uns anfangen!

Python und JSON

Python vereinfacht die Arbeit mit JSON-Dateien. Das zu diesem Zweck verwendete Modul ist das Json Modul. Dieses Modul sollte in Ihre Python-Installation integriert sein (integriert), und Sie müssen daher keine externen Module installieren, wie dies beispielsweise bei der Arbeit mit PDF- und Excel-Dateien der Fall ist. Um dieses Modul verwenden zu können, müssen Sie es nur importieren:

Import Json

Aber was macht das? Json Bibliothek tun? Diese Bibliothek analysiert JSON hauptsächlich aus Dateien oder Strings. Es analysiert auch JSON in ein Wörterbuch oder eine Liste in Python und umgekehrt, dh das Konvertieren eines Python-Wörterbuchs oder einer Liste in JSON-Zeichenfolgen.

JSON zu Python

Beim Lesen von JSON wird JSON in einen Python-Wert (Objekt) konvertiert. Wie oben erwähnt, ist die Json Bibliothek analysiert JSON in ein Wörterbuch oder eine Liste in Python. Dazu verwenden wir die Ladungen() Funktion (Laden aus einem String) wie folgt:

import json jsonData = '"name": "Frank", "age": 39' jsonToPython = json.loads (jsonData)

Wenn Sie die Ausgabe sehen möchten, führen Sie a aus Drucken Sie jsonToPython, In diesem Fall erhalten Sie folgende Ausgabe:

u'age ': 39, u'name': u'Frank '

Das heißt, die Daten werden als Python-Wörterbuch (JSON-Objektdatenstruktur) zurückgegeben. So wird die Aussage print jsonToPython ['name'] Ausgabe zurückgeben? Probieren Sie es aus.

Python zu JSON

Im vorherigen Abschnitt haben wir gesehen, wie man JSON in einen Python-Wert (d. H. Wörterbuch) konvertiert. In diesem Abschnitt werde ich Ihnen zeigen, wie wir einen Python-Wert in JSON konvertieren (kodieren) können.

Angenommen, wir haben das folgende Wörterbuch in Python:

import json pythonDictionary = 'name': 'Bob', 'age': 44, 'isEmployed': True dictionaryToJson = json.dumps (pythonDictionary)

Wenn wir Wörterbuch druckenToJson, Wir erhalten folgende JSON-Daten:

"age": 44, "isEmployed": true, "name": "Bob"

Diese Ausgabe wird also als Datendarstellung des Objekts (Dictionary) betrachtet. Die Methode Dumps () war der Schlüssel zu einer solchen Operation.

Beachten Sie an dieser Stelle, dass JSON nicht alle Arten von Python-Objekten speichern kann, sondern nur die folgenden Typen: Listen; Wörterbücher; Booleaner; Zahlen Zeichenketten; und keine. Daher müssen andere Typen konvertiert werden, um in JSON gespeichert zu werden.

Nehmen wir an, wir haben folgende Klasse:

Klasse Employee (Objekt): def __init __ (selbst, Name): self.name = Name

Nehmen wir an, wir haben ein neues Objekt erstellt abder, wie folgt:

abder = Angestellter ('Abder')

Was wäre, wenn wir dieses Objekt in JSON konvertieren wollten? Das ist json.dumps (abder)? In diesem Fall erhalten Sie eine Fehlermeldung, die der folgenden ähnelt:

Traceback (letzter Aufruf zuletzt): Datei "test.py", Zeile 8, in  abderJson = json.dumps (abder) Datei "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", Zeile 243, in Dumps geben _default_encoder.encode (obj) zurück. Datei "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", Zeile 207, in encode chunks = self.iterencode (o, _one_shot = True) Datei "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py" Zeile 270 in iterencode _iterencode (o, 0) zurückgeben Datei "/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py" , Zeile 184, in der Standardeinstellung Raise TypeError (repr (o) + "ist nicht JSON serialisierbar") TypeError: <__main__.Employee object at 0x10e74b750> ist nicht JSON serialisierbar

Gibt es eine Problemumgehung? Zum Glück gibt es das. Ich mag die auf der Python-Tipps-Website beschriebene Problemumgehung. Um dieses Problem zu lösen, können wir eine Methode definieren, die der folgenden ähnelt:

def jsonDefault (object): Objekt zurückgeben .__ dict__

Kodieren Sie dann das Objekt wie folgt in JSON:

jsonAbder = json.dumps (abder, default = jsonDefault)

Wenn du drucke jsonAbder, Sie sollten die folgende Ausgabe erhalten:

"name": "Abder"

Wir haben jetzt ein Python-Objekt codiert (abder) in JSON.

Fazit

In diesem Lernprogramm können wir feststellen, dass Python immer wieder nicht nur die Fähigkeit zum Arbeiten mit verschiedenen Anwendungen beweist, sondern auch die Flexibilität, mit verschiedenen Themen während der Arbeit mit einer Anwendung zu arbeiten, wie wir im letzten Teil des Lernprogramms gesehen haben.

Wenn Sie mehr über das erfahren möchten Json Modul können Sie die Dokumentationsseite besuchen.

Lernen Sie JavaScript: Das komplette Handbuch

Wir haben ein umfassendes Handbuch zusammengestellt, mit dessen Hilfe Sie JavaScript erlernen können, egal ob Sie gerade erst als Web-Entwickler anfangen oder sich mit fortgeschrittenen Themen befassen möchten.

Lerne Python

Lernen Sie Python mit unserem kompletten Python-Tutorial, egal ob Sie gerade erst anfangen oder ein erfahrener Programmierer sind, der neue Fähigkeiten erlernen möchte.