pandas read_sql
avec des requêtes sql paramétrées
La fonction pandas.read_sql
est un outil puissant pour récupérer les données des bases de données. Lorsque vous travaillez avec des moteurs SQLALCHEMY, il est crucial de passer efficacement les paramètres à vos requêtes SQL. Ce guide démontre deux approches communes: paramètres positionnels et nommés.
Méthode 1: Paramètres positionnels
Cette méthode utilise une liste ou un tuple pour fournir des paramètres à votre requête SQL. Les espaces réservés de l'instruction SQL (% s
) sont remplacés séquentiellement par les éléments de la liste des paramètres.
Exemple:
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'])
Méthode 2: paramètres nommés
Les paramètres nommés offrent une meilleure lisibilité et maintenabilité. Cependant, 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:
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'])
Remarque importante: Vérifiez toujours la documentation de votre pilote de base de données pour confirmer la syntaxe de paramètre correcte. L'utilisation de la 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é.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3