资讯专栏INFORMATION COLUMN

python读excel写入mysql小工具

luckyyulin / 471人阅读

摘要:背景需要导入全国高校名录到数据库,从教委网站下到了最新的数据,是格式,需要做一个工具进行导入,想试用一下,说干就干。值得注意的一点,数据库连接字段串中要设定字符编码,不然默认是,写入会出错。看来,没有不好的工具,只是我们没有用好啊

背景

需要导入全国高校名录到数据库,从教委网站下到了最新的数据,是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://www.ucloud.cn/yun/44468.html

相关文章

  • python入门之excel数据到mysql

    摘要:功能将数据导入到数据库练习使用将的数据导入到练习语句查看创建插入语句创建一个循环迭代读取文件每行数据的从第二行开始是要跳过标题关闭游标提交关闭数据库连接打印结果我刚导入了除了之外还可以另外的写操作词篇暂不赘述对于的操作有很多有意思的方法, 功能:将Excel数据导入到MySQL数据库 练习使用sqlite3 将excel的数据导入到mysql 练习sql语句-查看dochttps:...

    silvertheo 评论0 收藏0
  • 测试工具python实现对比2个excel文件匹配数据写入excel

    摘要:测试业务需要现有中有个分别是的,的,的,如下图的和都有列,且列数据值有部分是一样的现需要将和匹配生成的,匹配规则把复制到的文件中,中的列值取值是和都有列匹配对应的的列值实现打开要匹配的列索引目标数据列索引的的的的的总行数的的的总列数的要匹 测试业务需要: 1.现有a.xlsx a.xlsx中...

    meislzhua 评论0 收藏0
  • pandas使用

    摘要:写这篇文章主要是想按照一定的逻辑顺总结一下自己做项目以来序用到过的的知识点虽然官方文档上各个方面都写的很清楚但是还是想自己再写一份一个是想作为个人梳理另外也可以把最经常使用的部分拎出来更清晰一些不定时更新数据的读数据其中是需要的语句是创建的 写这篇文章,主要是想按照一定的逻辑顺总结一下自己做项目以来,序用到过的pandas的知识点.虽然pandas官方文档上各个方面都写的很清楚,但是还...

    int64 评论0 收藏0
  • Pandas技巧大全:含具体代码实现

    摘要:查看数据的基本统计信息。用处是用于数据读写处理更改提取等一系列操作的包,可以说,所有能实现的功能,都可以通过代码轻松实现,因此,对于学习非常重要。如果在里,需要翻到最低和最右,而且可能由于溢出无法穷尽可以简单的实现。 放在前面的话                         这学期刻意少...

    netmou 评论0 收藏0

发表评论

0条评论

luckyyulin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<