python读excel写入mysql小工具
背景
需要导入全国高校名录到数据库,从教委网站下到了最新的数据,是excel格式,需要做一个工具进行导入,想试用一下python,说干就干。
库
- xlrd : excel读写库
-
pymysql : mysql数据库驱动库,纯python打造
-
re : 正则表达式库,核心库
前两个用pip轻松完成安装,本人是在mac pro是进行的,过程很顺利,以前在mac上装mysqlclient一直安装不上,所以一度放弃使用python,但我在linux下安装mysqlclient却没有任何问题。
源代码
很简单的小脚本,留存纪念。值得注意的一点,数据库连接字段串中要设定字符编码,不然默认是lanti-1,写入会出错。
import xlrd import pymysql import re conn = pymysql.connect(host='database connect address', port=1234, user='root', passwd='****', db='database name', charset='utf8mb4') p = re.compile(r'\s') data = xlrd.open_workbook('./W020170616379651135432.xls') table = data.sheets()[0] t = table.col_values(1) nrows = table.nrows for i in range(nrows): r1 = table.row_values(i) if len(r1[2]) == 10: cur = conn.cursor() cur.execute('insert into `university` (`id`, `name`, `ministry`, `city`, `level`, `memo`) \ values (%s, %s, %s, %s, %s, %s)', (r1[2], p.sub('', r1[1]), p.sub('', r1[3]), p.sub('', r1[4]), r1[5], r1[6])) conn.commit() cur.close() conn.close()
心得
写惯了类C的语言,不太习惯python,想同时掌握两种风格的编程语言,好痛苦啊。python编程效率的确不错,这是我第一次用python写实用小程序,连查带写带调试,一共也就花了一个来小时。python库与资料丰富,不愁找不到合适的^_^
数据库写入优化
早上闲来无事,用批量写入优化了一下,任务秒完成,比一条条写入快了很多, 比我预想的差别还要大。看来,没有不好的工具,只是我们没有用好啊!
import xlrd import pymysql import re conn = pymysql.connect(host='database connect address', port=1234, user='root', passwd='****', db='database name', charset='utf8mb4') p = re.compile(r'\s') data = xlrd.open_workbook('./W020170616379651135432.xls') table = data.sheets()[0] t = table.col_values(1) nrows = table.nrows ops = [] for i in range(nrows): r1 = table.row_values(i) if len(r1[2]) == 10: ops.append((r1[2], p.sub('', r1[1]), p.sub('', r1[3]), p.sub('', r1[4]), r1[5], r1[6])) cur = conn.cursor() cur.executemany('insert into `university_copy` (`id`, `name`, `ministry`, `city`, `level`, `memo`) \ values (%s, %s, %s, %s, %s, %s)', ops) conn.commit() cur.close() conn.close()
原文地址:https://segmentfault.com/a/1190000012041140
相关推荐
-
RabbitMQ系列二:管理RabbitMQ python基础
2020-5-31
-
Eclipse常用快捷键 python基础
2019-6-30
-
函数补充(初步了解生成器和迭代器) python基础
2019-8-25
-
Scrapy的架构初探 python基础
2020-5-31
-
Python 实现刷网页流量工具,并添加代理,报错处理功能 python基础
2019-4-27
-
motifmatchr: 在R语言中分析peak中里是否有motif匹配 python基础
2019-8-27
-
基于图像识别的表格数据提取系统 python基础
2019-3-25
-
❖ 一篇文章入门Flask python基础
2019-10-16
-
Python与家国天下 python基础
2019-4-5
-
Python自动化运维之高级函数 python基础
2019-9-15