【发布时间】:2016-11-09 09:16:21
【问题描述】:
grpidx_data=[]
for i in range(0,len(data1)):
grpidx_data.append((data1.loc[i,'price'],data1.loc[i,'id']))
cur.executemany("insert into grpidx values (%s,%s)",grpidx_data)
我使用 python3.3 和 pymssql。我想将数据从 python 导入到 MSSQL。 grpidx_data 的类型是 list(tuple),like[(12,1),(34,2),...],我运行上面的代码然后报错:
ValueError: 期望一个简单类型,一个元组或一个列表
如果我只使用类型为 list(tuple) 的数据,则代码可以正常工作。但是当我使用 for 循环获取数据时,即使它的类型也是 list(tuple),它不起作用。
那么如何解决这个问题呢?
谢谢!
【问题讨论】:
-
你能
print(grpidx_data)看看它的内容吗? -
print(grpidx_data)[(40273730, 1.0), (50685730, 1.0), (52084730, 1.0), ...(36399702, 24.0)] -
你试过用
%d代替%s:cur.executemany("insert into grpidx values (%d,%d)",grpidx_data)吗? -
我试过了,还是一样的错误
-
这个呢:
cur.executemany("insert into grpidx values (%s,%s)", *grpidx_data)(注意grpidx_data前面的解包星号)
标签: python list sql-server-2008 tuples pymssql