Pandas read_sql
avec requêtes SQL paramétrées
La fonction pandas.read_sql
est un outil puissant pour récupérer des données à partir de bases de données. Lorsque vous travaillez avec des moteurs SQLAlchemy, il est crucial de transmettre efficacement des paramètres à vos requêtes SQL. Ce guide présente deux approches courantes : les paramètres positionnels et nommés.
Méthode 1 : Paramètres de position
Cette méthode utilise une liste ou un tuple pour fournir des paramètres à votre requête SQL. Les espaces réservés dans l'instruction SQL (%s
) sont remplacés séquentiellement par les éléments de la liste des paramètres.
Exemple :
<code class="language-python">import pandas as pd from datetime import datetime # ... (database connection setup using SQLAlchemy) ... query = ('SELECT "Timestamp", "Value" FROM "MyTable" ' 'WHERE "Timestamp" BETWEEN %s AND %s') params = [datetime(2014, 6, 24, 16, 0), datetime(2014, 6, 24, 17, 0)] df = pd.read_sql(query, db, params=params, index_col=['Timestamp'])</code>
Méthode 2 : Paramètres nommés
Les paramètres nommés offrent une meilleure lisibilité et maintenabilité. Toutefois, la syntaxe prise en charge dépend de votre pilote de base de données. Avec SQLAlchemy et psycopg2, la syntaxe %(name)s
est nécessaire.
Exemple :
<code class="language-python">import pandas as pd from datetime import datetime # ... (database connection setup using SQLAlchemy) ... query = ('SELECT "Timestamp", "Value" FROM "MyTable" ' 'WHERE "Timestamp" BETWEEN %(dstart)s AND %(dfinish)s') params = {"dstart": datetime(2014, 6, 24, 16, 0), "dfinish": datetime(2014, 6, 24, 17, 0)} df = pd.read_sql(query, db, params=params, index_col=['Timestamp'])</code>
Remarque importante : Vérifiez toujours la documentation de votre pilote de base de données pour confirmer la syntaxe correcte des paramètres. L’utilisation d’une mauvaise syntaxe entraînera des erreurs de requête. Cela garantit que vos requêtes paramétrées s'exécutent correctement et en toute sécurité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!