Dataset Python : simplifiez la gestion de vos bases de données à la manière de Pandas
Qu'est-ce que la bibliothèque Dataset ?
Dataset est une bibliothèque Python qui offre une interface intuitive pour interagir avec des bases de données SQL, sans avoir à écrire de requêtes SQL. Elle vous permet de manipuler vos données aussi simplement qu'avec des dictionnaires Python, tout en créant automatiquement les tables et en gérant la structure des données.
Les principaux avantages de Dataset :
- Création automatique des tables et des schémas
- API simple, sans requêtes SQL
- Prise en charge de nombreux SGBD via SQLAlchemy
- Syntaxe intuitive et facile à apprendre
- Configuration minimale requise
- Excellente compatibilité avec Pandas
Installation et configuration de Dataset
Installation de la bibliothèque
pip install dataset
Pour utiliser des bases de données spécifiques, des pilotes supplémentaires peuvent être nécessaires :
# Pour PostgreSQL
pip install psycopg2-binary
# Pour MySQL
pip install pymysql
# Pour SQLite, le pilote est déjà inclus dans Python
Connexion à différentes bases de données
import dataset
# SQLite (base locale)
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')
# En mémoire (pour les tests)
db = dataset.connect('sqlite:///:memory:')
Principes fondamentaux de Dataset
Dataset repose sur les principes suivants :
- Création automatique des tables — les tables sont créées lors de la première utilisation
- Schéma dynamique — la structure de la table se forme automatiquement lors de l'insertion de données
- Interface basée sur les dictionnaires — les données sont représentées comme des dictionnaires Python
- Pas de SQL — toutes les opérations s'effectuent via des méthodes Python
Création et gestion des tables
Accéder à une table
# Accéder à une table (créée automatiquement si elle n'existe pas)
users_table = db['users']
# Méthode alternative
users_table = db.get_table('users')
Créer une table avec des paramètres
# Créer une table avec une clé primaire personnalisée
db.create_table('products', primary_id='product_id', primary_type=db.types.string)
Insertion de données
Insérer un seul enregistrement
table = db['users']
# Insérer un utilisateur
table.insert({
'name': 'Jean Dupont',
'email': 'jean@example.com',
'age': 30,
'city': 'Paris'
})
Insertion en masse
# Insérer plusieurs enregistrements
users_data = [
{'name': 'Marie Martin', 'email': 'marie@example.com', 'age': 25},
{'name': 'Pierre Lefevre', 'email': 'pierre@example.com', 'age': 35},
{'name': 'Sophie Dubois', 'email': 'sophie@example.com', 'age': 28}
]
table.insert_many(users_data)
Opérations Upsert
# Insérer ou mettre à jour (si un enregistrement avec le même email existe déjà)
table.upsert({
'name': 'Jean Dupont',
'email': 'jean@example.com',
'age': 31,
'city': 'Lyon'
}, ['email'])
Recherche et filtrage des données
Récupérer tous les enregistrements
# Récupérer tous les enregistrements
all_users = list(table.all())
for user in all_users:
print(f"{user['name']} - {user['email']}")
Recherche avec conditions
# Trouver un seul enregistrement
user = table.find_one(name='Jean Dupont')
# Trouver tous les enregistrements avec une condition
young_users = list(table.find(age={'<': 30}) Aussi dans la bibliothèque
Limitation de débit en Rust : bibliothèques governor, leaky-bucket et middleware pour serveurs web
Bibliothèques WebSocket Java : Guide complet pour l'implémentation en temps réel
OneOf pour C# (.NET) : guide complet avec exemples
YAML avec Rust : bibliothèque serde_yaml