Python pymssql:将多个值插入到表中
我试图在一个表中插入多个值,但我不确定语法。。 我正在从excel文件中读取这些值Python pymssql:将多个值插入到表中,python,sql-server-2008-r2,pymssql,Python,Sql Server 2008 R2,Pymssql,我试图在一个表中插入多个值,但我不确定语法。。 我正在从excel文件中读取这些值 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='Pra
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)"
%(sheet.cell_value(rows,cols))) <---Getting 5 values from here as expected,but not sure how to map these values to the table values..
conn.commit()
但在本例中,参数编号不匹配。。所以我得到了一个错误:
TypeError: not enough arguments for format string
表结构:
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)
)
我假设call sheet.cell_valuerows,cols只返回一个值
因此,收集这些值可能有助于:
for rows in range(13,sheet.nrows):
arr = []
for cols in range(5):
arr.append(sheet.cell_value(rows,cols))
cur.execute(
"INSERT INTO MONTHLY_BUDGET VALUES (%s, %s, %s, %s, %s)",
tuple(arr)
)
您可能应该提供更多信息,说明您在常规单元格中有哪些数据,以及您在单元格中有哪些导致问题的数据。这非常缓慢。我认为问题是要求采用批量方法
for rows in range(13,sheet.nrows):
arr = []
for cols in range(5):
arr.append(sheet.cell_value(rows,cols))
cur.execute(
"INSERT INTO MONTHLY_BUDGET VALUES (%s, %s, %s, %s, %s)",
tuple(arr)
)