我必须从Excel读取数据并将其插入表格...
为此我使用的是Python 2.7,pymssql和xlrd模块......
我的sql连接工作正常,我也能正确读取Excel中的数据。
我的表结构:
CREATE TABLE MONTHLY_BUDGET
(
SEQUENCE INT IDENTITY,
TRANSACTION_DATE VARCHAR(100),
TRANSACTION_REMARKS VARCHAR(1000),
WITHDRAWL_AMOUNT VARCHAR(100),
DEPOSIT_AMOUNT VARCHAR(100),
BALANCE_AMOUNT VARCHAR(100)
)
我的excel值是这样的:
02/01/2015 To RD Ac no 147825000874 7,000.00 - 36,575.74
我在表格中插入多个值时遇到问题...我不知道该怎么做...
import xlrd
import pymssql
file_location = 'C:/Users/praveen/Downloads/OpTransactionHistory03-01-2015.xls'
#Connecting SQL Server
conn = pymssql.connect (host='host',user='user',password='pwd',database='Practice')
cur = conn.cursor()
# Open Workbook
workbook = xlrd.open_workbook(file_location)
# Open Worksheet
sheet = workbook.sheet_by_index(0)
for rows in range(13,sheet.nrows):
for cols in range(sheet.ncols):
cur.execute(
" INSERT INTO MONTHLY_BUDGET VALUES (%s, %s, %s, %s, %s)", <--- Not sure!!!
[(sheet.cell_value(rows,cols))])
conn.commit()
错误: ValueError:'params'arg()只能是元组或字典。
答案 0 :(得分:0)
你得到的例外是&#34;&#39; params&#39; arg()只能是一个元组或一个字典&#34;但是你在列表中传递。此外,您的参数列表似乎是单个元组而不是具有4个值的列表。尝试更改
cur.execute(
" INSERT INTO MONTHLY_BUDGET VALUES (?, ?, ?, ?, ?)", <--- Not sure!!!
[(sheet.cell_value(rows,cols))])
到
cur.execute(
" INSERT INTO MONTHLY_BUDGET VALUES (?, ?, ?, ?, ?)", <--- Not sure!!!
(sheet.cell_value(rows,cols)))
......或者
cur.execute(
" INSERT INTO MONTHLY_BUDGET VALUES (?, ?, ?, ?, ?)", <--- Not sure!!!
((sheet.cell_value(rows,cols))))
注意:未经测试。我一直在改变调用SQL中绑定变量的方式。