Interaktion zwischen Datenbanken und den Dateien - janehlenb/Projektarbeit-ChatGPT-Python GitHub Wiki
Herzlichen Glückwunsch! Du hast bereits gelernt, wie man Daten aus JSON- und CSV-Dateien liest und schreibt. Jetzt ist es an der Zeit, diese Daten in einer Datenbank zu speichern, mit ihnen zu arbeiten und sie wieder in JSON- oder CSV-Dateien zu exportieren. In diesem Abschnitt werden wir uns damit beschäftigen, wie du Daten zwischen Datenbanken und JSON-Dateien hin- und herbewegen kannst. Los geht's!
Daten in einer Datenbank speichern
Um Daten aus einer JSON- oder CSV-Datei in einer Datenbank zu speichern, musst du zuerst eine Verbindung zur Datenbank herstellen. Hier sind die grundlegenden Schritte, die du befolgen musst:
-
Importiere das entsprechende Datenbankmodul in Python.
-
Stelle eine Verbindung zur Datenbank her, indem du die Verbindungsparameter wie den Host, den Benutzernamen, das Passwort usw. bereitstellst.
-
Erstelle eine Tabelle in der Datenbank, um die Daten zu speichern. Definiere die Spalten entsprechend den Datenattributen.
-
Lese die Daten aus der JSON- oder CSV-Datei und füge sie in die Datenbank ein. Verwende SQL-Abfragen, um die Daten in die richtigen Tabellenspalten einzufügen.
-
Schließe die Verbindung zur Datenbank, sobald du mit dem Speichern der Daten fertig bist.
Daten aus einer Datenbank abrufen
Um Daten aus einer Datenbank abzurufen und in JSON- oder CSV-Dateien zu exportieren, musst du die folgenden Schritte befolgen:
-
Stelle eine Verbindung zur Datenbank her, ähnlich wie beim Speichern der Daten.
-
Führe eine SQL-Abfrage aus, um die gewünschten Daten aus der Datenbank abzurufen.
-
Verarbeite die abgerufenen Daten und formatiere sie entsprechend dem gewünschten Dateiformat (JSON oder CSV).
-
Speichere die formatierten Daten in einer Datei.
-
Schließe die Verbindung zur Datenbank.
Aufgaben:
-
Speichere die Daten aus einer JSON-Datei in einer SQLite-Datenbank und gib die Bestätigung aus, dass die Daten erfolgreich gespeichert wurden.
-
Rufe die Daten aus der Datenbank ab und speichere sie in einer CSV-Datei.
-
Aktualisiere die Daten in der Datenbank basierend auf den Änderungen in einer JSON-Datei.
Lösungen:
- Beispiel für das Speichern von Daten aus einer JSON-Datei in einer SQLite-Datenbank:
import sqlite3
import json
# Verbindung zur Datenbank herstellen
conn = sqlite3.connect('mydatabase.db')
# Tabelle erstellen
conn.execute('''CREATE TABLE IF NOT EXISTS employees
(id INT PRIMARY KEY NOT NULL,
name TEXT NOT NULL,
age INT NOT NULL);''')
# Daten aus JSON-Datei lesen
with open('data.json', 'r') as file:
data = json.load(file)
# Daten in die Datenbank einfügen
for item in data:
conn.execute("INSERT INTO employees (id, name, age) VALUES (?, ?, ?)",
(item['id'], item['name'], item['age']))
# Änderungen speichern und Verbindung schließen
conn.commit()
conn.close()
print("Die Daten wurden erfolgreich in der Datenbank gespeichert.")
- Beispiel für das Abrufen von Daten aus der Datenbank und Speichern in einer CSV-Datei:
import sqlite3
import csv
# Verbindung zur Datenbank herstellen
conn = sqlite3.connect('mydatabase.db')
# SQL-Abfrage ausführen
cursor = conn.execute("SELECT * FROM employees")
# Daten in CSV-Datei exportieren
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow([i[0] for i in cursor.description]) # Überschriften schreiben
writer.writerows(cursor)
# Verbindung schließen
conn.close()
print("Die Daten wurden erfolgreich in der CSV-Datei gespeichert.")
- Beispiel für das Aktualisieren von Daten in der Datenbank basierend auf Änderungen in einer JSON-Datei:
import sqlite3
import json
# Verbindung zur Datenbank herstellen
conn = sqlite3.connect('mydatabase.db')
# Daten aus JSON-Datei lesen
with open('changes.json', 'r') as file:
changes = json.load(file)
# Daten in der Datenbank aktualisieren
for change in changes:
conn.execute("UPDATE employees SET age = ? WHERE id = ?",
(change['new_age'], change['id']))
# Änderungen speichern und Verbindung schließen
conn.commit()
conn.close()
print("Die Daten in der Datenbank wurden erfolgreich aktualisiert.")
Viel Erfolg beim Arbeiten mit Datenbanken und dem Austausch von Daten zwischen JSON- oder CSV-Dateien und Datenbanken!