首页 > 解决方案 > 如何将 pd.read_sql 与参数一起使用

问题描述

尝试使用 pd.read_sql 时,我在使用 SQL 服务器进行参数化查询时遇到问题。

如果我跑

query = 'SELECT * FROM positions'
pd.read_sql(query,engine)

然后我得到了一个很好的结果:

        position_id                  position_name
    0             0             ACCOUNTING MANAGER
    1             1                     HR MANAGER
    ...
    ...
    ...

但如果我跑

query = 'SELECT ?,? FROM position_names'
params = ['position_id','position_name']
pd.read_sql(query, engine, params=params)

然后我得到:

0   position_id  position_name
1   position_id  position_name
2   position_id  position_name
3   position_id  position_name
...
...

我究竟做错了什么?谢谢你的帮助!

标签: pythonsqlsql-serverpandasparameterized-query

解决方案


将查询更改为表名并传递要提取的列列表:

    query = 'position_names'
    columns = ['position_id','position_name']
    pd.read_sql(query, engine, columns=columns)

推荐阅读