首页  >  文章  >  后端开发  >  如何使用 SQL 查询将参数传递给 Pandas' read_sql?

如何使用 SQL 查询将参数传递给 Pandas' read_sql?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-31 04:53:30635浏览

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

通过 SQL 查询在 Pandas 的 read_sql 中传递参数

使用 Pandas 执行带参数的 SQL 查询时,主要有两种方法:以列表或元组形式传递参数,或将它们作为字典传递。

以列表或元组形式传递参数

第一种方法涉及使用占位符创建 SQL 查询,例如 BETWEEN % s AND %s,并将参数值作为列表或元组传递。这可以在以下示例中看到:

<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>

将参数作为字典传递

第二种方法涉及使用命名参数创建 SQL 查询,例如如 BETWEEN :dstart AND :dfinish,并将参数值作为字典传递。但是,需要注意的是,并非所有数据库驱动程序都支持命名参数。

例如,常与 PostgreSQL 一起使用的 psycopg2 支持 %(name)s 风格的命名参数。这是一个示例:

<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>

请记住检查所选数据库驱动程序的文档,以确定命名参数支持的语法。

以上是如何使用 SQL 查询将参数传递给 Pandas' read_sql?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn