python读取excel保存到mysql

首先安装xlrd模块:pip install xlrd,核心代码网上有很多,这里主要是关于一些个人实际碰到问题细节的处理

1、excel数据不规范导致读取的数据存在空白行和列;

2、参数化执行sql

代码如下,仅供参考:

 

 1 import xlrd
 2 
 3 import AppSetting.AppConfig as config
 4 import AppSetting.dbConfig as db
 5 
 6 # 处理excel依赖xlrd模块 pip install xlrd
 7 
 8 # 读取excel文件
 9 excel_data = xlrd.open_workbook(config.file_path)
10 # 获取一个sheet页
11 sheet = excel_data.sheet_by_index(0)
12 # 总行数
13 rows = sheet.nrows
14 # 获取列(经常读取到的excel可能存在空白行或者空白列,这里根据第一行的数据获取要导入的数据的列数)
15 rowlsts = [i for i in sheet.row_values(0) if i != ‘‘]
16 cursor = db.connect.cursor()
17 # 定义变量n,当n=0 时组装参数化的sql
18 n = 0
19 sql = ""
20 # 由于excel中第一行存储的是字段名,获取数据从第二行开始
21 for i in range(1,rows):
22     try:
23         item = sheet.row_values(i)[:len(rowlsts)]
24         data = ‘‘
25         # 组装参数化sql,通过拼接%s得到占位符
26         for j in range(0,len(rowlsts)):
27             data += "%s,"
28         data = data.rstrip(,)
29         if n == 0:
30             sql = "insert into co_zfxx(%s) values( %s )" % (str.join(,,rowlsts),data)
31             cursor.execute(sql,tuple(item))
32         else:
33             cursor.execute(sql,tuple(item))
34 
35     except Exception as ex:
36         print(ex)
37 
38     finally:
39         n += 1
40 
41 db.connect.commit()
42 cursor.close()
43 db.connect.close()

本次测试执行5w条数据(26个字段),执行时间22s

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...