其实,我的业务流程是, 先读取excel/csv -> pandas 数据清洗 -> 导入Mysql, 一般是做一个表append 或者是 if exist -> replace的操作

逐行来添加数据其实更加灵活和方便.

这里用的驱动是pymysql的一个包, 其实本质就是一个客户端, 服务端已经和mysql进行匹配了, 只是使用client罢了.

还是直接上代码吧, 还是蛮简单的.

 #!/usr/bin/env python
# coding: utf-8
# author: chenjieyouge@gmail.com '''
应用场景:
将excel等存储的数据 逐条 导入到 Mysql, 即 拼接sql 语句insert into. 特点:
1. 更适用于有主键约束的的表, 如花名册管理, 直接将新花名册逐条插入, 如有门店重复,则 替换 掉,保持最新.
2. to_sql 则更适用用于无主键约束, 大批量导入数据的场景. 原理:
连接: 用Python提供的pymysql驱动,直接拼接SQL去执行
数据: 将每条数据进行"insert into 或 replace into 表名 values (), (), (), ()...每个()放一条数据.
过程:
1. 创建连接对象 con 名字取通俗易懂哈
2. 创建游标对象cursor (通俗理解为连接对象的一个小弟, 用来执行sql, 获取数据..)
3. 执行sql语句cursor.execute() 或 executemany()....
4. 提交命令(事务) con.commit()
5. 查询或提取数据 cursor.fetchall()
6. 关闭con, cursor ''' import pandas as pd
import pymysql # 配置
主机 = "192.168.6.81"
用户 = "xxx"
密码 = 123456
库名 = "new_house" # 连接 # 1. 创建连接对象, 游标对象
con = pymysql.connect(主机, 用户, 密码, 库名)
cursor = con.cursor() def 连接测试(cursor):
try:
# 3. 连接测试: 执行sql, 提交, 查询
cursor.execute("show tables;")
# 4. 提交
con.commit()
# 5. 获取数据
print(cursor.fetchall())
# 6. 关闭连接
cursor.close(); con.close()
print("连接测试成功!")
except Exception as e:
print("连接测试失败!", e) def 处理数据(path, sheet=None):
""""后续可以写更复杂的数据处理逻辑"""
table = pd.read_excel(path, sheet)
# 将缺失值用 None 填充
data = table.where(pd.notnull(table), None)
return table def 导入数据(cursor, table, to_table, method="replace"): len_cols = table.columns.size # 字段的个数 # 拼接sql语句: => insert into 表名 (字段1, 字段2 ...字段n) values (a,b,c), (d,e,f)....
if method not in ("insert", "replace"):
print("input error!") insert_sql = "%s into %s values (%s)" % (method,to_table, "%s,"*(len_cols-1) + "%s") # 变量每行数据, 组成生成器对象 ( (),(),(),(),(),()... ), 每个元组表示一条记录
args = (tuple(row) for _, row in table.iterrows())
try:
_ = cursor.executemany(insert_sql, args)
con.commit()
print("successfully!")
except Exception as e:
print("fail",e)
finally:
cursor.close()
con.close() if __name__ == '__main__': 连接测试() # table = 处理数据("C:\\Users\\beike\\Desktop\\8月带看明细8.15.xls")
#
# 导入数据(cursor, table, "数据库有的表", "replace")

Excel 逐条导入Mysql(数据更新)的更多相关文章

  1. 将Excel数据导入mysql数据库的几种方法

    将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...

  2. Excel连接到MySQL,将Excel数据导入MySql,MySQL for Excel,,

    Excel连接到MySQL 即使当今时代我们拥有了类似微软水晶报表之类的强大报表工具和其他一些灵活的客户管 理应用工具,众多企业在分析诸如销售统计和收入信息的时候,微软的Excel依然是最常用的工具. ...

  3. navcat excel数据导入mysql的方法

    navcat excel数据导入mysql的方法 先navcat导出 xls格式 然后把数据复制到往这个xls里 (按照这个xls格式) 然后导入mysql就行了 如果导入的过程无法识别excel里的 ...

  4. 将Excel数据导入MySql

    1.将选中的数据快儿拷贝到一个TXT文本文件中(记得把后面的空格消掉..),假如存到“D:\data.txt”这个位置里. 2.根据要导入的数据快儿建立MySql数据库和表,然后进入命令提示符里使用命 ...

  5. 如何将EXCEL表导入MYSQL

            在平时的工作学习中,难免会遇到需要把EXCEL表中的数据导入到MYSQL中,比如要把EXCEL中的数据进行核对,或者要把测试用例导入到TestLink中.本人搜集相关的资料并加以实践总 ...

  6. python3实现多excel一键导入mysql

    转载:qq_37955852 一.实现场景. import excel files to mysql author:zxb 工作每个work经常会导入一到几十张不等的excel表,表少可以用navic ...

  7. tp3.2.3运用phpexcel将excel文件导入mysql数据库

    1,下载PHPExcel 2,配置将下载好的PHPExcel文件与PHPExcel.php 放到thinkphp 根目录 include/Library/Org/Util/下面 3,同时将PHPExc ...

  8. excel文件导入mysql

    在数据处理的过程中,常常要把windows下的excel文件导入linux下的mysql.这其中会出现一些问题. 1.首先,要在mysql中建表.命令最好存在记事本中,可以随时修改,随时执行 crea ...

  9. 【MySQL笔记】Excel数据导入Mysql数据库的实现方法——Navicat

    很多公司尤其有点年头的公司,财务业务部门的各种表单都是excel来做的表格,随着互联网的发展各种业务流程都电子化流程化了,再在茫茫多的文档中去查找某一个年份月份的报告是件相当枯燥的事,所以都在想办法将 ...

随机推荐

  1. 从$a_n=f(n)$的角度理解数列中的表达式$a_{n+1}=\frac{k}{a_n}$

    函数周期性 前面我们学习过函数的周期性的给出方式: \(f(x+a)=f(x)\) \(\hspace{2cm}\) \(T=a\) \(f(x+a)=-f(x)\) \(\hspace{2cm}\) ...

  2. [题解向] [Luogu1441] 砝码称重

    \(\color{red}{\mathcal{Description}}\) \(Link\) \(\color{red}{\mathcal{Solution}}\) 思路:\(01\)背包方案数 + ...

  3. C语言博客作业4——数组

    0.展示PTA总分 一维数组 二维数组 字符数组 1.本章学习总结 1.1学习内容总结 一维数组知识点: 无论是对一维数组还是二维数组进行应用时,我们对其下标的应用十分广泛. 1:一维数组的输入和遍历 ...

  4. DJI Terra+EasyEarth让数据获取与应用无缝衔接

    大数据时代对地理信息数据的获取与应用提出了更高的要求: ⏩低成本.全要素.高效获取 ⏩数据采集.处理到应用无缝衔接 DJI Terra大疆智图 DJI Terra大疆智图是一款提供自主航线规划.飞行航 ...

  5. Ubuntu 16.04安装ANSYS 2019 R1

    参考:<ANSYS15.0 for Linux下载及安装教程> 参考链接: https://wenku.baidu.com/view/92bdf21b312b3169a451a4b5.ht ...

  6. Android Q Beta 6 终极测试版发布!

    前言 当今手机市场可谓是百花齐放,但手机系统却屈指可数,其中Android和iOS就占据了整个手机系统市场的99%,单单Android就占据了整个手机系统市场的86%,可谓是占据绝对优势.     其 ...

  7. 【操作系统之九】Linux常用命令之netstat

    一.概念netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP ...

  8. spring&pom两种获取profile的方式

    一.原理: 1.实现ApplicationContextAware(当一个类实现了ApplicationContextAware这个接口之后,这个类就可以通过setApplicationContext ...

  9. 通过inspect在电脑的Chrome上查看手机上的H5

    首先打开手机的开发者模式,(在连续点击7次版本号,系统会提示已经打开开发者模式) 然后打开一个手机浏览器. 然后在电脑上打开chrome://inspect/#devices.这是就会出现手机上浏览器 ...

  10. kubernetes学习一:安装及部署第一个Web应用

    准备工作 首先准备Kubernets的环境,使用的是centos7.5 关闭防火墙: # systemctl disable firewalld # systemctl stop firewalld ...