将数据帧写入sql表

时间:2018-01-20 02:50:04

标签: python sql pandas pypyodbc

我从一个数据库读取并将某些列输出到另一个数据库。 我使用数据帧来存储数据,然后遍历帧以输出我感兴趣的列。

for i in range(0,len(myframe.index)):
    cursor_conn2.execute(SQL2_UPD_NEWEMP,myframe.loc[i,"LNAME_EMP"])

但我一直收到错误:

raise TypeError("Params must be in a list, tuple, or Row")

这是SQL2_UPD_NEWEMP:

SQL2_UPD_NEWEMP="INSERT INTO DBO.NEW_EMP_CAL(LNAME) VALUES(?)"      

框架中有数据。 113行,LNAME_EMP是有效名称,每行包含数据。

这应该很简单,但是我没有看到错误发生在哪里,这让我感到难过。

当我运行此代码时,我会看到所有数据:

for i in range(0,len(myframe.index)):
    print(myframe.loc[i,"LNAME_EMP"])

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:2)

目前,您正在传递标量作为参数。但是,由于错误明确提到,您的参数必须是可迭代的,例如元组:

cursor_conn2.execute(SQL2_UPD_NEWEMP, (myframe.loc[i,"LNAME_EMP"],))

或列表:

cursor_conn2.execute(SQL2_UPD_NEWEMP, [myframe.loc[i,"LNAME_EMP"]])