Lerne Coding
JSON in Python korrekt verwenden!
09.02.2020

JSON in Python verwenden, wie geht das?

Inhaltsverzeichnis
[[TABLE OF CONTENTS]]
access_timeGeschätzte Lesezeit ca. 8 Minuten

Das JSON-Format steht für JavaScript Object Notation, dieses Datenformat ist leicht Lesebar und kann Objekte Repräsentieren. JSON eignet sich vor allem als Datenaustauschformat, ähnlich wie XML. Der Name enthält zwar JavaScript, aber das heißt nicht, dass die Nutzung von JSON auf JavaScript beschränkt. Inzwischen unterstützt jede Moderne Programmiersprache das JSON Format. Deshalb möchte ich Euch den Umgang mit JSON in Python-Skripten zeigen.

Die Standartisierung von JSON ist in ECMA 404 zu finden. Dort ist bis ins Detail beschrieben wie mit JSON zu arbeiten ist und wie die korrekte Syntax aussieht. https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf

Da es einen Parser für JSON in allen gänigen Programmiersprachen gibt, oft sogar auch verschieden für eine Programmiersprache ist JSON ein hervoragendes Datenaustauschformat für mehrer Programmiersprachen.

Python verfügt über ein Integriertes Modul in der Python Standard Library. Das Modul heißt einfach nur "json".

JSON Datentyp äquvivalent des Datentypen in Python

JSON verfügt, wie Python, über mehrere Datentypen. Somit ist eine Zuweisung gleicher Datentypen möglich.

Thema der Tabelle "Datentypen"
JSON-Datentyp Syntax Python-Datentyp
Object {} dict
Array [] list
String "" str
Number 10 10.5 int float
Value true false bool
Value null NoneType

Object und Array können wie gewohnt weitere Kindelemente wie Strings, Objects und alle andere Datentypen enthalten. So können riesiege Strukturen von struktirerten Daten erstellt werden.

Importieren vom JSON Modul in Python 3

Um das JSON Modul zu Importieren. benötigen wir den folgenden Befehl. Dieser ist immer notwendig, wenn mit JSON gearbeitet wird. Ich werde daher darauf verzichten, ihn in den weiteren Beispielen extra zu erwähnen.

import json

Diesen Befehl an den Anfang eurer Datei schreiben, in der Ihr JSON verwenden wollt. Ihr könnt also direkt loslegen und in Python mit JSON Formaten arbeiten.

JSON String in Dictionary umwandeln bzw. parsen

Um in Python ein JSON String einzulesen benötigen wir die json.loads() Methode. Damit können wir JSON-Strings in Python einlesen und auf die Daten im Dictionary, welches aus dem JSON String erstellt wird, zugreifen.

jsonString = '{"test": "testValue","test2": "content"}'

obj = json.loads(jsonString)

print(obj["test2"])

Sobald du nun den JSON String in eine Dictionary geparset hast, kannst du auf alle Werte zugreifen.

Lesen von JSON Dateien in Python

Python hat eine zusätzliche Möglichkeit um Daten direkt aus einer JSON-Datei auszulesen. Dazu benötigts du die Methode json.load() . Damit kann JSON direkt aus dem Filestream laden, ohne dass der Content vorher ausgelesen werden muss. In diesem Falle ist die Variable "obj" nun unser Python Dictionary.

with open('test.json','r') as file:
    obj = json.load(file)

Python eine Variable in einen JSON String umwandeln

Natürlich kannst du auch Daten wieder in einen JSON-String umwandeln. Zum Beispiel kannst du ein Python Dict in ein JSON Objekt umwandeln.

Folgede Daten werden folgendermaßen formatiert:

Thema der Tabelle "Umwandlung"
JSON Python
object dict
array list
String str
number (int) (real) int float
true True
false False
null None

Unser Dict fürs Json könnte zum Beispiel den Folgenden Inhalt haben:

article = {
    'title': 'Hello World, deine erste Zeile Code!',
    'author': 'Felix Schürmeyer'
}

Dieses Python Dictionary können wir nun in einen JSON-String umwandeln. Mit der Methode json.dumps kannst du das ganze nun in ein JSON-String umwandeln.

json.dumps(article)

# '{"title": "Hello World, deine erste Zeile Code!", "author": "Felix Sch\\u00fcrmeyer"}'

Als Ergebnisse erhalten wir nun einen JSON-String.

JSON in eine Datei schreiben mit Python

Mit der Methode json.dump, ohne das "S" am Ende, kannst du die Daten direkt in einen Filestream schreiben, diesen musst du natürlich erst öffnen. Wichtig ist, dass es sich bei der open() Methode um eine "writeable Filestream" handelt. Wir wollen wieder unseren Artikel in eine JSON-Datei schreiben.

json.dump(article,open('article-save.json','w'))

Und nun haben wir unsere Datei "article-save.json" und könnnen mit dieser weiter arbeiten.

"Pretty Print" von Dictionary

Um ein Dictionary in eine Datei zu schreiben und dabei das JSON in eine "Schöne" Form zu bringen benötigen wir zwei Argumente "Indent" und "sort_keys".

json.dump(article,open('article-save.json','w'),indent=4,sort_keys=True)

ident → Mit Ident kannst du definieren wie viel pro Ebene eingerückt werden soll. Alternativ, kannst du auch für Sonderfälle einen String mit einem Special Character angeben. Ein Indent von 4 gehört für mich zum guten Ton.

sort_keys → Der Output wird nach den Keys sortiert, wenn du diesen Wert auf "true" stellst.

Fazit zu JSON in Python

Python und JSON lassen sich wunderbar vereinen - du kannst sturkturierte Daten lesen und schreiben, mit vergleichsweise einfachen Methoden. JSON lässt sich für Mensch und Maschine gut lesen, aus diesem Grund nutze ich gerne JSON.

Kommentare zum Artikel

Es sind noch keine Kommentare vorhanden? Sei der/die Erste und verfasse einen Kommentar zum Artikel "JSON in Python korrekt verwenden!"!

Kommentar schreiben

Vom Autor Empfohlen
close