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的curses库使用教程
Apr 11 Python
在Gnumeric下使用Python脚本操作表格的教程
Apr 14 Python
Python模块搜索概念介绍及模块安装方法介绍
Jun 03 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
python中字符串变二维数组的实例讲解
Apr 03 Python
Python 实现子类获取父类的类成员方法
Jan 11 Python
Flask框架模板渲染操作简单示例
Jul 31 Python
TensorFlow tf.nn.max_pool实现池化操作方式
Jan 04 Python
基于Python共轭梯度法与最速下降法之间的对比
Apr 02 Python
Python如何读写二进制数组数据
Aug 01 Python
解决pytorch读取自制数据集出现过的问题
May 31 Python
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
Apr 04 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
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
一个显示天气预报的程序
2006/10/09 PHP
PHP sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
利用 fsockopen() 函数开放端口扫描器的实例
2017/08/19 PHP
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
angular.bind使用心得
2015/10/26 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
Vue数据驱动模拟实现3
2017/01/11 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
javascript中的面向对象
2017/03/30 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
python实现图片批量剪切示例
2014/03/25 Python
Python使用matplotlib绘制随机漫步图
2018/08/27 Python
python简单验证码识别的实现方法
2019/05/10 Python
python之pexpect实现自动交互的例子
2019/07/25 Python
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
经典c++面试题五
2014/12/17 面试题
中学教师自我鉴定
2014/02/07 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
实训报告范文大全
2014/11/04 职场文书
生日宴会祝酒词
2015/08/10 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
php png失真的原因及解决办法
2021/10/24 PHP