Dataset Python: Einfache Datenbankarbeit im Pandas-Stil
Was ist die Bibliothek Dataset?
Dataset ist eine Python-Bibliothek, die eine benutzerfreundliche Schnittstelle für die Arbeit mit SQL-Datenbanken bietet – ganz ohne SQL-Abfragen. Sie ermöglicht es, mit Datenbanken so einfach zu arbeiten wie mit Python-Wörterbüchern, wobei Tabellen automatisch erstellt und die Datenstruktur verwaltet wird.
Die wichtigsten Vorteile von Dataset:
- Automatische Erstellung von Tabellen und Schemata
- Einfache API ohne SQL-Abfragen
- Unterstützung vieler Datenbanksysteme über SQLAlchemy
- Intuitive und verständliche Syntax
- Minimale Konfiguration
- Hervorragende Kompatibilität mit Pandas
Installation und Einrichtung von Dataset
Bibliothek installieren
pip install dataset
Für bestimmte Datenbanken werden zusätzliche Treiber benötigt:
# Für PostgreSQL
pip install psycopg2-binary
# Für MySQL
pip install pymysql
# Der SQLite-Treiber ist bereits in Python enthalten
Verbindung zu verschiedenen Datenbanken herstellen
import dataset
# SQLite (lokale Datenbank)
db = dataset.connect('sqlite:///mydatabase.db')
# PostgreSQL
db = dataset.connect('postgresql://user:password@localhost:5432/dbname')
# MySQL
db = dataset.connect('mysql://user:password@localhost/dbname')
# Im Arbeitsspeicher (für Tests)
db = dataset.connect('sqlite:///:memory:')
Grundprinzipien der Arbeit mit Dataset
Dataset basiert auf folgenden Prinzipien:
- Automatische Tabellenerstellung – Tabellen werden beim ersten Zugriff angelegt
- Dynamisches Schema – die Tabellenstruktur wird beim Einfügen von Daten automatisch erzeugt
- Wörterbuch-Schnittstelle – Daten werden als Python-Wörterbücher dargestellt
- Kein SQL nötig – alle Operationen erfolgen über Python-Methoden
Tabellen erstellen und verwalten
Tabelle abrufen
# Tabelle abrufen (wird automatisch erstellt, falls nicht vorhanden)
users_table = db['users']
# Alternative Methode
users_table = db.get_table('users')
Tabelle mit Einstellungen erstellen
# Tabelle mit benutzerdefiniertem Primärschlüssel erstellen
db.create_table('products', primary_id='product_id', primary_type=db.types.string)
Daten einfügen
Einzelnen Datensatz einfügen
table = db['users']
# Einen Benutzer einfügen
table.insert({
'name': 'Max Mustermann',
'email': 'max@example.com',
'age': 30,
'city': 'Berlin'
})
Mehrere Datensätze einfügen
# Mehrere Datensätze einfügen
users_data = [
{'name': 'Anna Schmidt', 'email': 'anna@example.com', 'age': 25},
{'name': 'Peter Müller', 'email': 'peter@example.com', 'age': 35},
{'name': 'Maria Fischer', 'email': 'maria@example.com', 'age': 28}
]
table.insert_many(users_data)
Upsert-Operationen
# Einfügen oder aktualisieren (falls ein Datensatz mit derselben E-Mail existiert)
table.upsert({
'name': 'Max Mustermann',
'email': 'max@example.com',
'age': 31,
'city': 'München'
}, ['email'])
Daten suchen und filtern
Alle Datensätze abrufen
# Alle Datensätze abrufen
all_users = list(table.all())
for user in all_users:
print(f"{user['name']} - {user['email']}")
Suche mit Bedingungen
# Einen Datensatz finden
user = table.find_one(name='Max Mustermann')
# Alle Datensätze mit einer Bedingung finden
young_users = list(table.find(age={'<': 30}) Auch in der Bibliothek
Rate Limiting in Go: Leitfaden zur Begrenzung der Anfragenrate
Arbeiten mit ZIP-Archiven in Java: vollständige Anleitung zu java.util.zip
HTML-Parsing in Go (Golang): Bibliotheken und Codebeispiele
Kryptographie in Swift: Verschlüsselung und Hashing für iOS/macOS