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从入门到精通(DAY 3)
Dec 20 Python
解决Linux系统中python matplotlib画图的中文显示问题
Jun 15 Python
遗传算法python版
Mar 19 Python
JavaScript实现一维数组转化为二维数组
Apr 17 Python
python 提取tuple类型值中json格式的key值方法
Dec 31 Python
python3实现单目标粒子群算法
Nov 14 Python
Python线程条件变量Condition原理解析
Jan 20 Python
python实现同一局域网下传输图片
Mar 20 Python
django执行原始查询sql,并返回Dict字典例子
Apr 01 Python
Django数据结果集序列化并展示实现过程
Apr 22 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
Apr 25 Python
python 实现批量图片识别并翻译
Nov 02 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使用date和strtotime函数输出指定日期的方法
2014/11/14 PHP
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
Extjs实现进度条的两种便捷方式
2013/09/26 Javascript
js中事件的处理与浏览器对象示例介绍
2013/11/29 Javascript
javascript日期格式化示例分享
2014/03/05 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
JavaScript学习笔记之JS对象
2015/01/22 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
js微信应用场景之微信音乐相册案例分享
2017/08/11 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
python判断windows隐藏文件的方法
2014/03/21 Python
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
python 多个参数不为空校验方法
2019/02/14 Python
从列表或字典创建Pandas的DataFrame对象的方法
2019/07/06 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
python如何求100以内的素数
2020/05/27 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
会计电算化专业求职信
2014/06/10 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
单位授权委托书范文
2014/08/02 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书
自书遗嘱范文
2015/08/07 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
Python函数式编程中itertools模块详解
2021/09/15 Python
在Oracle表中进行关键词搜索的过程
2022/06/10 Oracle
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技