pyodbc:无法使用字符串变量更新表的列名和值

时间:2017-10-18 20:25:11

标签: python pyodbc

我正在尝试更新一个SQL表,其中列名和实际是“未知”/字符串。我从quandl获取列名,并在SQL表中使用相同的名称。

下面的代码应该显示我想要做的一个例子:

data = quandl.get("EOD/PG", trim_start = "2011-12-12", trim_end = "2017-10-15", authtoken=quandl.ApiConfig.api_key)

data = data.reset_index()
da = list(data.columns.values)
for row in data.itertuples():
    i = 2
    while i < len(da):
        price = row[i:i+1]
        price, = price
        col = da[i]
        i += 1
        cur.execute("update PG set ? = (?)", (col, price))

然而,显然“价格”不起作用,我收到以下错误:

  

pyodbc.DataError:('22003','[22003] [Microsoft] [ODBC SQL Server   驱动程序] [SQL Server]将表达式转换为的算术溢出错误   数据类型nvarchar。 (8115)(SQLExecDirectW)')

如果我手动设置价格= 55,那么表格会更新。这让我感到困惑,因为当我打印价格(使用我的代码)时,我得到一个浮点值。

所以我不知道如何解决这个问题。任何帮助都会受到欢迎。

0 个答案:

没有答案