Direkt zum Inhalt

Python JSON Data: Ein Leitfaden mit Beispielen

Lerne, wie du mit JSON in Python arbeitest, einschließlich Serialisierung, Deserialisierung, Formatierung, Leistungsoptimierung, Umgang mit APIs und Verständnis für die Grenzen und Alternativen von JSON.
Aktualisierte 15. Jan. 2025  · 8 Min. Lesezeit

JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat, das sich in vielen Programmiersprachen, darunter auch Python, durchgesetzt hat. Mit seiner einfachen Syntax und seiner Fähigkeit, komplexe Datenstrukturen darzustellen, ist JSON zu einem festen Bestandteil der modernen Webentwicklung geworden und ermöglicht alles von APIs bis hin zu clientseitigen Webanwendungen. 

In diesem Tutorial erkläre ich die Grundlagen der Arbeit mit JSON in Python, einschließlich Serialisierung, Deserialisierung, Lesen und Schreiben von JSON-Dateien, Formatierung und mehr. Am Ende dieses Tutorials wirst du:

  • Verstehe JSON und seine Vor- und Nachteile
  • Identifiziere Anwendungsfälle für JSON und vergleiche es mit gängigen Alternativen
  • Serialisiere und deserialisiere JSON-Daten effektiv in Python
  • Arbeit mit JSON-Daten in der Programmiersprache Python
  • Formatiere JSON-Daten in Python mit der `json`-Bibliothek
  • Optimiere die Leistung bei der Arbeit mit json-Daten
  • Verwalte JSON-Daten in der API-Entwicklung.

Was ist JSON?

JSON (JavaScript Object Notation) ist ein leichtgewichtiges, sprachunabhängiges Datenaustauschformat, das von vielen Programmiersprachen und Frameworks übernommen und unterstützt wird. Es ist eine gute Wahl für den Datenaustausch, wenn ein einfaches, leicht zu lesendes Format benötigt wird, das komplexe Datenstrukturen unterstützt und leicht zwischen verschiedenen Computerprogrammen ausgetauscht werden kann.

Der perfekte Anwendungsfall für JSON ist, wenn Daten zwischen webbasierten Anwendungen ausgetauscht werden müssen, z. B. wenn du ein Formular auf einer Website ausfüllst und die Informationen zur Verarbeitung an einen Server geschickt werden. 

JSON ist ideal für dieses Szenario, weil es ein leichtgewichtiges und effizientes Format ist, das weniger Bandbreite und Speicherplatz benötigt als andere Formate wie XML. Außerdem unterstützt JSON komplexe Datenstrukturen wie verschachtelte Objekte und Arrays, was die Darstellung und den Austausch strukturierter Daten zwischen verschiedenen Systemen erleichtert. Ein paar andere Anwendungsfälle für das JSON-Format sind:

  1. Anwendungsprogrammierschnittstelle (APIs). JSON wird häufig für die Erstellung von APIs (Application Programming Interfaces) verwendet, die es verschiedenen Systemen und Anwendungen ermöglichen, miteinander zu kommunizieren. Viele webbasierte APIs verwenden zum Beispiel JSON als Datenformat für den Austausch von Daten zwischen verschiedenen Anwendungen, was die Integration mit verschiedenen Programmiersprachen und Plattformen erleichtert.
  2. Konfigurationsdateien. JSON bietet ein einfaches und leicht zu lesendes Format zum Speichern und Abrufen von Konfigurationsdaten. Dazu können Einstellungen für die Anwendung gehören, wie z. B. das Layout einer Benutzeroberfläche oder Benutzereinstellungen.
  3. IoT (Internet der Dinge).  IoT-Geräte erzeugen oft große Datenmengen, die mit JSON effizienter gespeichert und zwischen Sensoren und anderen Geräten übertragen werden können. 

JSON Anfrage Prozess

Beispiel für JSON-Daten

{
  "name": "John Doe",
  "age": 30,
  "email": "john.doe@example.com",
  "is_employee": true,
  "hobbies": [
    "reading",
    "playing soccer",
    "traveling"
  ],
  "address": {
    "street": "123 Main Street",
    "city": "New York",
    "state": "NY",
    "zip": "10001"
  }
}

In diesem Beispiel haben wir ein JSON-Objekt, das eine Person darstellt. Das Objekt hat mehrere Eigenschaften: Name, Alter, E-Mail und is_employee. Die Eigenschaft hobbies ist ein Array, das drei Strings enthält. Die Adresseigenschaft ist ein Objekt mit mehreren eigenen Eigenschaften wie Straße, Stadt, Bundesland und Postleitzahl.

Beachte, dass JSON-Daten in der Regel als eine Reihe von Schlüssel-Wert-Paaren formatiert sind, wobei der Schlüssel als String und der Wert in verschiedenen Typen wie String, Zahl, Boolean, Array oder Objekt dargestellt wird.

Vorteile und Nachteile der Verwendung von JSON

Im Folgenden haben wir einige der positiven und negativen Aspekte der Verwendung von JSON herausgearbeitet. 

Vorteile der Arbeit mit einer JSON-Datei:

Zu den wichtigsten Vorteilen von JSON gehört die Tatsache, dass es:

  1. Leicht und einfach zu lesen. JSON-Dateien sind leicht zu lesen und zu verstehen, auch für technisch nicht versierte Nutzer. Außerdem sind sie leicht, was bedeutet, dass sie problemlos über das Internet übertragen werden können.
  2. Interoperabel: JSON-Dateien sind interoperabel, das heißt, sie können problemlos zwischen verschiedenen Systemen und Plattformen ausgetauscht werden. Das liegt daran, dass JSON ein weithin unterstütztes Standardformat ist und viele Anwendungen und Dienste JSON für den Datenaustausch nutzen. Die Arbeit mit JSON-Dateien kann es daher einfacher machen, verschiedene Teile eines Systems zu integrieren oder Daten zwischen verschiedenen Anwendungen auszutauschen.
  3. Einfach zu validieren: JSON-Dateien können leicht anhand eines Schemas validiert werden, um sicherzustellen, dass sie einer bestimmten Struktur oder einem Regelwerk entsprechen. Das kann helfen, Fehler und Unstimmigkeiten in den Daten frühzeitig zu erkennen, was Zeit spart und spätere Probleme verhindert. JSON-Schemata können auch verwendet werden, um automatisch eine Dokumentation für die in der JSON-Datei gespeicherten Daten zu erstellen.

Nachteile der Arbeit mit einer JSON-Datei:

  1. Begrenzte Unterstützung für komplexe Datenstrukturen: JSON-Dateien unterstützen zwar eine Vielzahl von Datentypen, sind aber nicht gut geeignet, um komplexe Datenstrukturen wie Graphen oder Bäume zu speichern. Das kann es schwierig machen, mit bestimmten Datentypen in JSON-Dateien zu arbeiten.
  2. Keine Durchsetzung des Schemas: JSON-Dateien haben kein Schema, was bedeutet, dass es möglich ist, inkonsistente oder ungültige Daten in einer JSON-Datei zu speichern. Das kann zu Fehlern und Bugs in Anwendungen führen, die sich auf die Daten in der Datei verlassen.
  3. Begrenzte Abfrage- und Indizierungsmöglichkeiten: JSON-Dateien bieten nicht die gleichen Abfrage- und Indexierungsmöglichkeiten wie herkömmliche Datenbanken. Das kann es schwierig machen, komplexe Suchen durchzuführen oder bestimmte Teilmengen von Daten aus einer großen JSON-Datei abzurufen.

Top-Alternativen zu JSON für effizienten Datenaustausch


Es gibt mehrere Alternativen zu JSON, die für den Datenaustausch oder die Datenspeicherung verwendet werden können, jede mit ihren eigenen Stärken und Schwächen. Einige der beliebtesten Alternativen zu JSON sind:

  1. XML (Extensible Markup Language). XML ist eine Auszeichnungssprache, die Tags verwendet, um Elemente und Attribute zur Beschreibung der Daten zu definieren. Es ist ein ausführlicheres Format als JSON, hat aber eine starke Unterstützung für Schema-Validierung und Dokumentenstruktur.
  2. YAML (Yet Another Markup Language). YAML ist ein für den Menschen lesbares Format zur Serialisierung von Daten, das einfach zu lesen und zu schreiben ist. Es ist ein übersichtlicheres Format als XML und unterstützt komplexe Datentypen und Kommentare.
  3. MessagePack. MessagePack ist ein binäres Serialisierungsformat, das kompakter und effizienter sein soll als JSON. Es unterstützt komplexe Datentypen und ist ideal für die Übertragung von Daten über Netzwerke mit geringer Bandbreite.
  4. Protokollpuffer. Protocol Buffers ist ein binäres Serialisierungsformat, das von Google entwickelt wurde. Es ist hocheffizient und unterstützt die Schema-Validierung, was es ideal für große verteilte Systeme macht.
  5. BSON (Binary JSON). BSON ist ein binäres Serialisierungsformat, das das JSON-Format um zusätzliche Datentypen und Optimierungen für mehr Effizienz erweitert. Sie wurde für die effiziente Speicherung und Übertragung von Daten in MongoDB-Datenbanken entwickelt.

Die Wahl des Datenaustauschformats hängt von dem jeweiligen Anwendungsfall und den Anforderungen der Anwendung ab. JSON ist aufgrund seiner Einfachheit, Vielseitigkeit und weiten Verbreitung nach wie vor eine beliebte Wahl, aber andere Formate wie XML, YAML, MessagePack, Protocol Buffers und BSON können für bestimmte Anwendungsfälle besser geeignet sein.

Python-Bibliotheken für die Arbeit mit JSON-Daten

Es gibt einige beliebte Python-Pakete, die du für die Arbeit mit JSON-Dateien verwenden kannst:

  1. json. Dies ist ein eingebautes Python-Paket, das Methoden zur Kodierung und Dekodierung von JSON-Daten bereitstellt.
  2. simplejson. Dieses Paket bietet einen schnellen JSON-Encoder und -Decoder mit Unterstützung für Python-spezifische Typen.
  3. ujson. Dieses Paket ist ein ultraschneller JSON-Encoder und -Decoder für Python.
  4. jsonschema. Dieses Paket bietet eine Möglichkeit, JSON-Daten gegen ein bestimmtes Schema zu validieren.

JSON Serialisierung und Deserialisierung

Bei der JSON-Serialisierung und -Deserialisierung werden JSON-Daten in andere Formate wie Python-Objekte oder Strings umgewandelt, um die Daten zu übertragen oder zu speichern.

Serialisierung ist der Prozess der Umwandlung eines Objekts oder einer Datenstruktur in einen JSON-String. Dieser Vorgang ist notwendig, um die Daten in einem Format zu übertragen oder zu speichern, das von anderen Systemen oder Programmen gelesen werden kann. Die JSON-Serialisierung ist eine gängige Technik, die in der Webentwicklung verwendet wird, wo Daten oft zwischen verschiedenen Systemen oder Anwendungen übertragen werden.

Die Deserialisierung hingegen ist der Prozess, bei dem ein JSON-String wieder in ein Objekt oder eine Datenstruktur umgewandelt wird. Dieser Prozess ist notwendig, um die Daten in einem Programm oder System zu verwenden. Die JSON-Deserialisierung wird in der Webentwicklung häufig verwendet, um Daten zu analysieren, die von einer API oder einer anderen Quelle stammen.

JSON-Serialisierung und Deserialisierung sind wichtige Techniken für die Arbeit mit JSON-Daten in verschiedenen Kontexten, von der Webentwicklung bis zur Datenanalyse und darüber hinaus. Viele Programmiersprachen bieten integrierte Bibliotheken oder Pakete, die die Serialisierung und Deserialisierung einfach und effizient machen.

Hier sind einige gängige Funktionen aus der json Bibliothek, die für die Serialisierung und Deserialisierung verwendet werden.

1. json.dumps()

Mit dieser Funktion kannst du ein Python-Objekt in einen JSON-String serialisieren. Die Funktion dumps() nimmt ein einziges Argument, das Python-Objekt, und gibt einen JSON-String zurück. Hier ist ein Beispiel:

import json

# Python object to JSON string
python_obj = {'name': 'John', 'age': 30}

json_string = json.dumps(python_obj)
print(json_string)  

# output: {"name": "John", "age": 30}

2. json.loads()

Mit dieser Funktion kannst du einen JSON-String in ein Python-Objekt parsen. Die Funktion loads() nimmt ein einziges Argument, den JSON-String, und gibt ein Python-Objekt zurück. Hier ist ein Beispiel: 

import json

# JSON string to Python object
json_string = '{"name": "John", "age": 30}'


python_obj = json.loads(json_string)


print(python_obj)  

# output: {'name': 'John', 'age': 30}

3. json.dump()

Mit dieser Funktion kannst du ein Python-Objekt serialisieren und in eine JSON-Datei schreiben. Die Funktion dump() benötigt zwei Argumente: das Python-Objekt und das Dateiobjekt. Hier ist ein Beispiel:

import json

# serialize Python object and write to JSON file
python_obj = {'name': 'John', 'age': 30}
with open('data.json', 'w') as file:
    json.dump(python_obj, file)

4. json.load()

Mit dieser Funktion kannst du eine JSON-Datei lesen und ihren Inhalt in ein Python-Objekt parsen. Die Funktion load() nimmt ein einziges Argument, das Dateiobjekt, und gibt ein Python-Objekt zurück. Hier ist ein Beispiel:

import json

# read JSON file and parse contents
with open('data.json', 'r') as file:
    python_obj = json.load(file)
print(python_obj)  

# output: {'name': 'John', 'age': 30}

Python und JSON haben unterschiedliche Datentypen, wobei Python eine breitere Palette an Datentypen bietet als JSON. Während Python in der Lage ist, komplizierte Datenstrukturen wie Sets und Dictionaries zu speichern, ist JSON auf die Verarbeitung von Strings, Zahlen, Booleschen Werten, Arrays und Objekten beschränkt. Schauen wir uns einige der Unterschiede an:

Python

JSON

Diktat

Objekt

Liste

Array

Tupel

Array

str

String

int

Nummer

Schwimmer

Nummer

Wahr

wahr

Falsch

false

Keine

null

Python-Liste zu JSON

Um eine Python-Liste in das JSON-Format umzuwandeln, kannst du die Methode json.dumps() aus der json-Bibliothek verwenden.

import json

my_list = [1, 2, 3, "four", "five"]

json_string = json.dumps(my_list)

print(json_string)

In diesem Beispiel haben wir eine Liste namens my_list mit einer Mischung aus ganzen Zahlen und Strings. Dann verwenden wir die Methode json.dumps(), um die Liste in eine JSON-formatierte Zeichenkette umzuwandeln, die wir in der Variablen json_string speichern.

JSON-Daten formatieren

In Python bietet die Funktion json.dumps() Optionen zur Formatierung und Anordnung der JSON-Ausgabe. Hier sind einige gängige Optionen:

1. Indent

Diese Option legt die Anzahl der Leerzeichen fest, die für die Einrückung im ausgegebenen JSON-String verwendet werden sollen. Zum Beispiel:

import json

data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

json_data = json.dumps(data, indent=2)

print(json_data)
```

This will produce a JSON formatted string with an indentation of 2 spaces for each level of nesting:

```
{
  "name": "John",
  "age": 30,
  "city": "New York"
}

2. Sort_keys

Diese Option legt fest, ob die Schlüssel im ausgegebenen JSON-String in alphabetischer Reihenfolge sortiert werden sollen. Zum Beispiel:

import json

data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

json_data = json.dumps(data, sort_keys=True)

print(json_data)

Dies erzeugt einen JSON-formatierten String mit den Schlüsseln in alphabetischer Reihenfolge:

{"age": 30, "city": "New York", "name": "John"}

3. Abscheider

Mit dieser Option kannst du die Trennzeichen festlegen, die im ausgegebenen JSON-String verwendet werden. Der Parameter separators enthält ein Tupel aus zwei Strings, wobei der erste String das Trennzeichen zwischen JSON-Objekt-Schlüssel-Wert-Paaren und der zweite String das Trennzeichen zwischen Elementen in JSON-Arrays ist. Zum Beispiel:

import json

data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

json_data = json.dumps(data, separators=(",", ":"))

print(json_data)
```
This will produce a JSON formatted string with a comma separator between key-value pairs and a colon separator between keys and values:

```
{"name":"John","age":30,"city":"New York"}

Python Beispiel - JSON-Daten in APIs

import requests
import json


url = "https://jsonplaceholder.typicode.com/posts"


response = requests.get(url)


if response.status_code == 200:
    data = json.loads(response.text)
    print(data)
else:
    print(f"Error retrieving data, status code: {response.status_code}")

OUTPUT:

Daten ausgeben

Dieser Code verwendet die Bibliothek requests und die Bibliothek json in Python, um eine Anfrage an die URL "https://jsonplaceholder.typicode.com/posts" zu stellen und Daten abzurufen. Die Zeile requests.get(url) stellt die eigentliche Anfrage und speichert die Antwort in der Variablen response.

Die Zeile if response.status_code == 200: prüft, ob der Antwortcode 200 ist, was bedeutet, dass die Anfrage erfolgreich war. Wenn die Anfrage erfolgreich ist, lädt der Code den Antworttext mit der Methode json.loads() in ein Python-Wörterbuch und speichert ihn in der Variablen data.


Wenn du mehr über dieses Thema erfahren möchtest, schau dir unser Tutorial an Web-APIs, Python-Anfragen & HTTP-Anfragen in Python stellen.

Optimieren der JSON-Leistung in Python

Wenn du mit großen Mengen an JSON-Daten in Python arbeitest, ist es wichtig, die Leistung deines Codes zu optimieren, um sicherzustellen, dass er effizient läuft. Hier sind einige Tipps zur Optimierung der JSON-Leistung in Python:

  1. Verwende die Bibliotheken cjson oder ujson. Diese Bibliotheken sind schneller als die Standard-JSON-Bibliothek in Python und können die Leistung der JSON-Serialisierung und -Deserialisierung erheblich verbessern.
  2. Vermeide unnötige Umstellungen. Das Hin- und Herwechseln zwischen Python-Objekten und JSON-Daten kann teuer sein, was die Leistung angeht. Wenn möglich, solltest du direkt mit JSON-Daten arbeiten und unnötige Konvertierungen vermeiden.
  3. Verwende Generatoren für große JSON-Daten. Bei der Arbeit mit großen Mengen an JSON-Daten kann die Verwendung von Generatoren helfen, den Speicherverbrauch zu reduzieren und die Leistung zu verbessern.
  4. Minimiere den Netzwerk-Overhead. Bei der Übertragung von JSON-Daten über ein Netzwerk kann die Minimierung der übertragenen Datenmenge die Leistung verbessern. Verwende Komprimierungstechniken wie gzip, um die Größe von JSON-Daten zu reduzieren, bevor du sie über ein Netzwerk überträgst.
  5. Verwende Caching. Wenn du häufig auf dieselben JSON-Daten zugreifst, kann das Zwischenspeichern der Daten die Leistung verbessern, indem die Anzahl der Anfragen zum Laden der Daten reduziert wird.
  6. Optimiere die Datenstruktur: Auch die Struktur der JSON-Daten kann sich auf die Leistung auswirken. Die Verwendung einer einfacheren, flacheren Datenstruktur kann die Leistung gegenüber einer komplexen, verschachtelten Struktur verbessern.

Beschränkungen des JSON-Formats

JSON ist zwar ein beliebtes Format für den Datenaustausch in vielen Anwendungen, aber es gibt einige Einschränkungen bei der Implementierung, die du beachten musst:

  1. Fehlende Unterstützung für einige Datentypen. JSON bietet nur begrenzte Unterstützung für bestimmte Datentypen, wie z.B. Binärdaten, Datums- und Zeitangaben. Es gibt zwar Workarounds, um diese Typen in JSON darzustellen, aber das kann die Serialisierung und Deserialisierung komplizierter machen.
  2. Fehlende Unterstützung für Kommentare. Im Gegensatz zu anderen Formaten, wie YAML und XML, unterstützt JSON keine Kommentare. Das kann es erschweren, Kommentare zu JSON-Daten hinzuzufügen, um Kontext oder Dokumentation zu liefern.
  3. Begrenzte Flexibilität für Erweiterungen. JSON unterstützt zwar Erweiterungen durch benutzerdefinierte Eigenschaften oder die $schema-Eigenschaft, aber das Format bietet nicht so viel Flexibilität für Erweiterungen wie andere Formate, z. B. XML oder YAML.
  4. Kein Standard für die Einhaltung der Schlüsselreihenfolge. JSON hat keine Standardmethode, um die Reihenfolge der Schlüssel in einem Objekt beizubehalten, was es schwieriger macht, JSON-Objekte zu vergleichen oder zusammenzuführen.
  5. Eingeschränkte Unterstützung für zirkuläre Referenzen. JSON unterstützt nur begrenzt zirkuläre Referenzen, bei denen ein Objekt auf sich selbst zurückverweist. Das kann es schwieriger machen, einige Datenstrukturen in JSON darzustellen.

Bei der Arbeit mit JSON-Daten ist es wichtig, sich dieser Implementierungsbeschränkungen bewusst zu sein, um sicherzustellen, dass das Format für deine Bedürfnisse geeignet ist und um mögliche Probleme bei der Serialisierung, Deserialisierung und Datendarstellung zu vermeiden.

Fazit

JSON ist ein vielseitiges und weit verbreitetes Format für den Datenaustausch in der modernen Webentwicklung, und Python bietet eine Reihe leistungsstarker Werkzeuge für die Arbeit mit JSON-Daten. Ganz gleich, ob du eine API entwickelst oder mit clientseitigen Webanwendungen arbeitest, die Grundlagen von JSON in Python zu verstehen, ist eine wichtige Fähigkeit für jeden modernen Entwickler. Wenn du die in diesem Lernprogramm beschriebenen Techniken beherrschst, bist du auf dem besten Weg, mit JSON-Daten in Python zu arbeiten und robuste, skalierbare Anwendungen zu erstellen, die die Möglichkeiten dieses leistungsstarken Datenaustauschformats nutzen.

Wenn du lernen willst, wie du Pipelines zum Importieren von Daten in gängigen Speicherformaten erstellst, schau dir unseren Optimierter Datenimport mit Pandas Kurs. Du wirst Pandas, eine wichtige Python-Bibliothek für Analysen, verwenden, um Daten aus verschiedenen Quellen zu erhalten, z. B. aus einer Tabelle mit Umfrageantworten, einer Datenbank mit öffentlichen Serviceanfragen und einer API für eine beliebte Bewertungsseite. 

FAQs

Wie kann ich JSON-Dateien behandeln, die zu groß sind, um in den Speicher zu passen?

Wenn du mit großen JSON-Dateien arbeitest, die nicht in den Speicher passen, kannst du die Daten mit der ijson-Bibliothek von Python inkrementell verarbeiten oder die Datei Zeile für Zeile lesen, wenn die JSON-Datei als eine Reihe kleinerer Objekte strukturiert ist. Zum Beispiel:

import ijson

with open('large_file.json', 'r') as file:
    for item in ijson.items(file, 'item'):
        print(item)  # Process each JSON item individually

Wie kann ich zwei JSON-Objekte in Python zusammenführen?

Du kannst zwei JSON-Objekte zusammenführen, indem du sie zunächst in Python-Wörterbücher deserialisierst und dann ein Wörterbuch mit dem Inhalt des anderen aktualisierst:

import json

json1 = '{"name": "Alice", "age": 25}'
json2 = '{"city": "New York", "hobbies": ["reading", "cycling"]}'

dict1 = json.loads(json1)
dict2 = json.loads(json2)

dict1.update(dict2)
merged_json = json.dumps(dict1)

print(merged_json)
# Output: {"name": "Alice", "age": 25, "city": "New York", "hobbies": ["reading", "cycling"]}

Können JSON-Daten Kommentare enthalten, und wie kann ich sie in Python verarbeiten?

JSON unterstützt von Haus aus keine Kommentare, aber wenn du mit einer nicht standardisierten JSON-Datei arbeitest, die Kommentare enthält (z. B. mit // oder /* */), kannst du die Datei vorverarbeiten, um sie vor dem Parsen zu entfernen. Hier ist ein Beispiel:

import json
import re

with open('file_with_comments.json', 'r') as file:
    content = file.read()

# Remove comments
content = re.sub(r'//.*?$|/\*.*?\*/', '', content, flags=re.DOTALL | re.MULTILINE)

data = json.loads(content)
print(data)

Moez Ali's photo
Author
Moez Ali
LinkedIn
Twitter

Datenwissenschaftler, Gründer und Schöpfer von PyCaret

Themen

Erfahre mehr über Python

Zertifizierung verfügbar

Kurs

Einführung in Datenbanken in Python

4 hr
97.1K
In diesem Kurs lernst du die Grundlagen von relationalen Datenbanken und den Umgang mit ihnen.
Siehe DetailsRight Arrow
Kurs starten
Mehr anzeigenRight Arrow