Maison >base de données >tutoriel mysql >Comment transmettre des paramètres aux pandas read_sql avec des requêtes SQL ?

Comment transmettre des paramètres aux pandas read_sql avec des requêtes SQL ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-18 07:23:10850parcourir

How to Pass Parameters to pandas read_sql with SQL Queries?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn