资讯专栏INFORMATION COLUMN

python读excel写入mysql小工具

ctriptech / 1288人阅读

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

背景

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

相关文章

  • pythonexcel写入mysql工具

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

    luckyyulin 评论0 收藏0
  • 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
  • python -查找重复邮箱,保留没重复过的值

    摘要:用读文件个邮件列表去重后,不包含的数据这次是要读取两个的文件,然后查看表中的邮箱不在中的邮箱,然后将结果另存为知识点读,没有列标题,命名标题合并两个,然后找不同。在的话,要先选择最后一列为的值。 用pd读excel文件--2个邮件列表去重后,不包含的数据 这次是要读取两个excel的文件,然后查看tiany表中的邮箱不在spam中的邮箱,然后将结果另存为email_result.xls...

    AlphaGooo 评论0 收藏0

发表评论

0条评论

ctriptech

|高级讲师

TA的文章

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