podas with pyodbc - Nan error:[42S22] ERROR:Attribute' QNAN'未找到(31)(SQLExecDirectW)

时间:2016-03-24 14:44:57

标签: pandas odbc pyodbc

使用来自pandas DataFrame(x1是数字类型)的数据运行pyodbc execute()时

sql = "select * from t where x1=?"
cursor.execute(sql, df[row,'x1'])
看起来很奇怪的错误:

(' 42S22'," [42S22]错误:属性' QNAN'未找到(31)(SQLExecDirectW)")

如何阅读这样的错误消息?

1 个答案:

答案 0 :(得分:0)

我花了一段时间把碎片放在一起。 以下是阅读错误的方法:

  1. pyodbc需要x1号但是得到Nan并将其转换为字符串值'QNAN'
  2. sql成为“select * from t where x1 = QNAN”
  3. 通过ODBC桥SQLExecDirect函数解析sql请求返回错误状态42S22
  4. 42S22 - ODBC bridge error code表示“无效的列名”
  5. 注意,不要将pyodbc与ODBC桥接软件混淆。 ODBC桥作为操作系统软件包的一部分安装。