Maison  >  Article  >  développement back-end  >  Comment transmettre des paramètres à read_sql de Pandas avec des requêtes SQL ?

Comment transmettre des paramètres à read_sql de Pandas avec des requêtes SQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 04:53:30626parcourir

How do I pass parameters to Pandas' read_sql with SQL queries?

Passer des paramètres dans read_sql de Pandas avec des requêtes SQL

Lorsque vous utilisez Pandas pour effectuer des requêtes SQL avec des paramètres, il existe deux approches principales : transmettre des paramètres sous forme de liste ou de tuple , ou en les transmettant sous forme de dictionnaire.

Passer des paramètres sous forme de liste ou de tuple

La première méthode consiste à créer une requête SQL avec des espaces réservés, tels que BETWEEN % s AND %s, et en transmettant les valeurs des paramètres sous forme de liste ou de tuple. Cela peut être vu dans l'exemple suivant :

<code class="python">df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
                     'where "Timestamp" BETWEEN %s AND %s'),
                   db,params=[datetime(2014,6,24,16,0),datetime(2014,6,24,17,0)],
                   index_col=['Timestamp'])</code>

Passing Parameters as a Dictionary

La deuxième méthode consiste à créer une requête SQL avec des paramètres nommés, tels que comme ENTRE :dstart AND :dfinish, et en passant les valeurs des paramètres sous forme de dictionnaire. Cependant, il est important de noter que tous les pilotes de base de données ne prennent pas en charge les paramètres nommés.

Par exemple, psycopg2, qui est couramment utilisé avec PostgreSQL, prend en charge le style %(name)s des paramètres nommés. Voici un exemple :

<code class="python">df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
                     'where "Timestamp" BETWEEN %(dstart)s AND %(dfinish)s'),
                   db,params={"dstart":datetime(2014,6,24,16,0),"dfinish":datetime(2014,6,24,17,0)},
                   index_col=['Timestamp'])</code>

N'oubliez pas de consulter la documentation du pilote de base de données que vous avez choisi pour déterminer la syntaxe prise en charge pour les paramètres nommés.

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