Passer des paramètres dans read_sql de Pandas avec des requêtes SQL
Problème :
Lorsque vous travaillez avec Avec la méthode read_sql() de Pandas et les requêtes SQL, les utilisateurs peuvent rencontrer des difficultés à transmettre des paramètres à la requête. Bien que la documentation mentionne l'utilisation de paramètres sous forme de liste ou de tuple, certains utilisateurs rencontrent des problèmes lorsqu'ils tentent d'utiliser un format de dictionnaire.
Solution :
Selon le read_sql (), les paramètres peuvent en effet être passés sous forme de dictionnaire. Cependant, la syntaxe prise en charge par le pilote de base de données utilisé dans la connexion joue un rôle crucial.
Pour Psycopg2, le pilote de base de données couramment utilisé lors de la connexion à PostgreSQL, la syntaxe d'argument nommé est prise en charge. Dans ce cas, les noms des paramètres doivent être entourés de doubles signes % et spécifiés sous forme de dictionnaire, comme indiqué ci-dessous :
<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>
Dans cet exemple, la syntaxe %()s est utilisée pour définir les espaces réservés des paramètres. dans la requête SQL. Les valeurs correspondantes sont ensuite transmises sous forme de dictionnaire à l'argument params de read_sql().
En utilisant la syntaxe correcte pour le pilote de base de données utilisé, les utilisateurs peuvent transmettre avec succès des paramètres aux requêtes SQL lors de l'utilisation de read_sql( de Pandas. ) méthode.
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!