【问题标题】:Error passing pandas query to sql database将 pandas 查询传递到 sql 数据库时出错
【发布时间】:2020-09-01 08:26:30
【问题描述】:

我有一个直接在 sql server studio 中执行的简单 sql 查询

select latitude from locations.dbo.users WHERE firstname='Mike'

使用 python 中的 pandas 模块可以很好地执行相同的查询

pandas.read_sql_query('select latitude from locations.dbo.users WHERE firstname=\'Mike\'',conn)

但是当尝试使用变量查询 firstname 列时,我得到一个像这样的错误..

firstname="Mike"
pandas.read_sql_query('select latitude from locations.dbo.users WHERE firstname='+firstname, conn)

'执行失败 sql'select latitude from locations.dbo.users WHERE firstname=Mike': ('42S22', "[42S22] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Mike '. (207) (SQLExecDirectW)")'

我知道错误只是因为我的引号的位置和字符串的布局,但似乎无法获得正确的布局以使查询完全成功,就像我在没有变量的情况下那样。尝试了双引号和单引号等的所有方式和位置。

【问题讨论】:

    标签: python sql pandas


    【解决方案1】:

    您的连接字符串中缺少单引号。以下应该有效:

    pandas.read_sql_query("select latitude from locations.dbo.users WHERE firstname='"+firstname+"'", conn)
    

    或者:

    pandas.read_sql_query('select latitude from locations.dbo.users WHERE firstname=\''+firstname+'\'', conn)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-10
      • 2018-03-22
      • 1970-01-01
      • 2017-08-26
      • 2022-08-15
      • 1970-01-01
      • 2020-08-04
      • 2020-04-03
      相关资源
      最近更新 更多