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 相关文章推荐
linux环境下的python安装过程图解(含setuptools)
Nov 22 Python
PyCharm 常用快捷键和设置方法
Dec 20 Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 Python
Python视频爬虫实现下载头条视频功能示例
May 07 Python
python实现根据指定字符截取对应的行的内容方法
Oct 23 Python
python 自定义对象的打印方法
Jan 12 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 Python
Django-rest-framework中过滤器的定制实例
Apr 01 Python
Python中常见的数制转换有哪些
May 27 Python
PIP和conda 更换国内安装源的方法步骤
Sep 21 Python
Python基础之变量的相关知识总结
Jun 23 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
php在线生成ico文件的代码
2007/10/09 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
PHP Class&Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
laravel 5 实现模板主题功能(续)
2015/03/02 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
GRID拖拽行的实例代码
2013/07/18 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
AngularJS动态绑定ng-options的ng-model实例代码
2017/06/21 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
详解vue组件之间的通信
2020/08/30 Javascript
Python导出DBF文件到Excel的方法
2015/07/25 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
建龙钢铁面试总结
2014/04/15 面试题
经典禁毒标语
2014/06/16 职场文书
效能风暴心得体会
2014/09/04 职场文书
新教师个人工作总结
2015/02/06 职场文书
药店营业员岗位职责
2015/04/14 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
任命书格式模板
2015/09/22 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers