我刚开始学习python和SQL。我可以连接到我的数据库,并从中查询。现在我想插入行。特别是,我有一本列表字典。我想将每个列表作为行的一部分插入数据库。因为我的单子很长,我想找一个优雅的方法来做。
表的定义如下:
CREATE TABLE [dbo].[ExampleTable](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Date] [date] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[columnA] [nvarchar](50) NULL,
[columnB] [int] NOT NULL,
[columnC] [decimal](5, 4) NOT NULL,
[columnD] [int] NOT NULL
...
[columnX] [nvarchar](50) NOT NULL
)
到目前为止我有:
import pyodbc
import datetime
import time
cnxn = pyodbc.connect(connStr)
db_cursor = cnxn.cursor()
myDict = dict()
myDict['key1'] = ['John Doe', 5, 0.978, -1, ..., 'x'] # there are many columns here
thisDate = datetime.date(2014, 10, 22)
myTable = ExampleTable
insertQuery = "insert into %s value(?, ?, ?)" %myTable
for key in myDict:
db_cursor.execute(insertQuery, key, thisDate.strftime('%Y-%m-%d'), myDict[key])
cnxn.commit()
这里我得到一个错误:
ProgrammingError: ('Invalid parameter type. param-index=4 param-type=list', 'HY105')
有没有一种方法可以做到优雅,而不必引用字典列表中的每个元素?
谢谢!
目前没有回答
相关问题 更多 >
编程相关推荐