使用 SQL 查询在 Pandas 的 read_sql 中传递参数
问题:
使用时Pandas 的 read_sql() 方法和 SQL 查询,用户可能会遇到向查询传递参数的困难。虽然文档提到使用参数作为列表或元组,但一些用户在尝试使用字典格式时发现了问题。
解决方案:
根据 read_sql () 文档中,参数确实可以作为字典传递。然而,连接中使用的数据库驱动程序支持的语法起着至关重要的作用。
对于连接 PostgreSQL 时常用的数据库驱动程序 Psycopg2,支持命名参数语法。在这种情况下,参数名称应包含在双 % 符号中并指定为字典,如下所示:
<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>
在此示例中,%()s 语法用于定义参数占位符在 SQL 查询中。然后将相应的值作为字典传递给 read_sql() 的 params 参数。
通过利用所使用的数据库驱动程序的正确语法,用户可以在使用 Pandas 的 read_sql( ) 方法。
以上是如何将参数传递给 Pandas 的 read_sql() 中的 SQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!