【问题标题】:Import from excel file a current range of cells to MySql using Python使用 Python 从 excel 文件导入当前范围的单元格到 MySql
【发布时间】:2013-04-09 16:18:28
【问题描述】:

我的项目涉及
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
    

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

但是……它确实有效……

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

【问题讨论】:

  • 究竟是什么不起作用?此代码产生错误?
  • 我正在使用 PyScripter。如果我用 for row in range(3,12) 运行它: values=[] for col in range(0,10): values.append(mydatasheet.cell(row,col).value) cursor.execute(query, values) ,它打开 cursor.py 并且我有 TypeError
  • 消息文件名行位置回溯 C:\Users\ANASTASIADIS STAVROS\Desktop\The Documents\PythonWork\DataManagement.py 50 执行 C:\Python27\lib\site-packages\MySQLdb\ cursors.py 184 TypeError:字符串格式化期间并非所有参数都转换
  • ndpu,修复我的项目后,我有新的错误:消息文件名行位置回溯 C:\Users\ANASTASIADIS STAVROS\Desktop\The Documents\PythonWork\DataManagement.py 51 执行 C :\Python27\lib\site-packages\MySQLdb\cursors.py 202 defaulterrorhandler C:\Python27\lib\site-packages\MySQLdb\connections.py 36 "OperationalError: (1136, ""列数与值数不匹配在第 1 行"")"
  • 我已经检查了好几次了。我的价值观是一个带有浮点数的列表。 cursor.execute 可能仅适用于元组结构吗? .

标签: python mysql excel import


【解决方案1】:

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

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

values.append(str(mydatasheet.cell(row,col).value))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多