python将数据插入数据库的代码分享


Posted in Python onAugust 16, 2020

python将数据插入数据库的方法:

  • 首先读入数据并建立数据库连接;
  • 然后创建数据库;
  • 接着执行插入数据语句,迭代读取每行数据;
  • 最后关闭数据库连接即可。

比如现在我们要将如下Excel数据表格插入到MySQL数据库中,该如何实现呢?

python将数据插入数据库的代码分享

实现代码:

#导入需要使用到的数据模块
import pandas as pd
import pymysql

#读入数据
filepath = 'E:\_DataSet\catering_sale.xls'
data = pd.read_excel(filepath)

#建立数据库连接
db = pymysql.connect('localhost','root','1234','python_analysis')
#获取游标对象
cursor = db.cursor()
#创建数据库,如果数据库已经存在,注意主键不要重复,否则出错
try:
    cursor.execute('create table catering_sale(num int primary key,date datetime, sale float )')
except:
    print('数据库已存在!')

#插入数据语句
query = """insert into catering_sale (num, date, sale) values (%s,%s,%s)"""

#迭代读取每行数据
#values中元素有个类型的强制转换,否则会出错的
#应该会有其他更合适的方式,可以进一步了解
for r in range(0, len(data)):
    num = data.ix[r,0]
    date = data.ix[r,1]
    sale = data.ix[r,2]
    values = (int(num), str(date), float(sale))
    cursor.execute(query, values)

#关闭游标,提交,关闭数据库连接
#如果没有这些关闭操作,执行后在数据库中查看不到数据
cursor.close()
db.commit()
db.close()

#重新建立数据库连接
db = pymysql.connect('localhost','root','1234','python_anylysis')
cursor = db.cursor()
#查询数据库并打印内容
cursor.execute('''select * from catering_sale''')
results = cursor.fetchall()
for row in results:
    print(row)
#关闭
cursor.close()
db.commit()
db.close()

知识点扩展:

数据库连接池

数据库的连接是昂贵的,一个连接要经过TCP三次握手,四次挥手,而且一台计算机的最大线程数也是有限的

数据库连接池技术就是先创建好连接,再直接拿出来使用

import mysql.connector,mysql.connector.pooling
 config={
  "host": "localhost", "port": "3306",
  "user": "root", "password": "password",
  "database": "demo"
 }
 try:
  pool=mysql.connector.pooling.MySQLConnectionPool(**config,pool_size=5)
  con=pool.get_connection()
  con.start_transaction()
  cursor = con.cursor()
  sql = "INSERT INTO t_dept(deptno,dname,loc) VALUES(%s,%s,%s);"
  cursor.execute(sql, (70, "SALES", "HUBAI"))
  con.commit()
 except Exception as e:
  if "con" in dir():
   con.rollback()
  print(e)
 # do not need to close con

到此这篇关于python将数据插入数据库的代码分享的文章就介绍到这了,更多相关python如何将数据插入数据库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中生成器和yield语句的用法详解
Apr 17 Python
深入理解Python中命名空间的查找规则LEGB
Aug 06 Python
Python 迭代器工具包【推荐】
May 06 Python
对python中return和print的一些理解
Aug 18 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 Python
解决Python3 控制台输出InsecureRequestWarning问题
Jul 15 Python
在python中实现同行输入/接收多个数据的示例
Jul 20 Python
pycharm激活码有效到2020年11月底
Sep 18 Python
tensorflow2.0保存和恢复模型3种方法
Feb 03 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 Python
使用豆瓣源来安装python中的第三方库方法
Jan 26 Python
python3美化表格数据输出结果的实现代码
Apr 14 Python
详解Python高阶函数
Aug 15 #Python
python 19个值得学习的编程技巧
Aug 15 #Python
解析python 类方法、对象方法、静态方法
Aug 15 #Python
浅谈python锁与死锁问题
Aug 14 #Python
Python3.8安装Pygame教程步骤详解
Aug 14 #Python
Python configparser模块应用过程解析
Aug 14 #Python
PyCharm 2020.2 安装详细教程
Sep 25 #Python
You might like
vmware linux系统安装最新的php7图解
2019/04/14 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
PHP连接MySQL数据库三种实现方法
2020/12/10 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
2014/11/06 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
Node.js文本文件BOM头的去除方法
2020/11/22 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
python 队列详解及实例代码
2016/10/18 Python
python实现学生管理系统
2018/01/11 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
python样条插值的实现代码
2018/12/17 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
python飞机大战pygame游戏框架搭建操作详解
2019/12/17 Python
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
PHP面试题-$message和$$message的区别
2015/12/08 面试题
《母鸡》教学反思
2014/02/25 职场文书
数控专业自荐书范文
2014/03/16 职场文书
战友聚会主持词
2014/04/02 职场文书
个人工作表现评语
2014/04/30 职场文书
小班上学期评语
2014/05/05 职场文书
甜品店创业计划书
2014/09/21 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
先进工作者申报材料
2014/12/23 职场文书
介绍信的写法
2015/01/31 职场文书
python基础之停用词过滤详解
2021/04/21 Python
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS