使用 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中文网其他相关文章!