我正在尝试更新一个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,那么表格会更新。这让我感到困惑,因为当我打印价格(使用我的代码)时,我得到一个浮点值。
所以我不知道如何解决这个问题。任何帮助都会受到欢迎。