0

我的项目涉及
1) 从 excel 文件导入数据

path="...\dataexample.xls"
databook=xlrd.open_workbook(path)
mydatasheet=databook.sheet_by_index(0)

2)连接到本地主机数据库

database = MySQLdb.connect (host=myhost, user = myuser, passwd = mypasswd, db = dbname)

3) 将当前单元格范围导入数据库 Mydataexample.xls有 12 行和 122 列,对于我的 INSERT QUERY,我只需要 A3:J12 单元格经过一些搜索后,我处于以下位置:

  • 准备查询和

    cursor = database.cursor() query = """INSERT INTO agiosathanasios(record,Stn_Code,Raw_Dist,Snow,Snow_corr,Smp,Raw_Dist_QC,Snow_final,Snow_final_pos) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s)"""

  • 为查询收集正确的单元格

    for row in range(3,12):
    values=[]
    for col in range(0,10):
        values.append(mydatasheet.cell(row,col).value)
    print values
    

我试图在 values.append 之后添加以下代码database, cursor.execute(query,values),以便我可以导入我想要的值。

但是……它确实有效……

我怎样才能解决这个问题?如何将当前值放入我的查询中?

4

1 回答 1

0

因此,根据回溯,您并未向查询提供所有参数,或者将值转换为字符串存在一些问题(值中没有)。在调用 cursor.execute 之前检查值!

尝试从 excel 转换为字符串值:

values.append(str(mydatasheet.cell(row,col).value))
于 2013-04-09T17:33:02.177 回答