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笔记(1) 关于我们应不应该继续学习python
Oct 24 Python
python中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
python正则表达式中的括号匹配问题
Dec 14 Python
Python中Collections模块的Counter容器类使用教程
May 31 Python
python使用sqlite3时游标使用方法
Mar 13 Python
python如何在循环引用中管理内存
Mar 20 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
Jul 10 Python
Django model select的多种用法详解
Jul 16 Python
python自定义时钟类、定时任务类
Feb 22 Python
django 自定义过滤器(filter)处理较为复杂的变量方法
Aug 12 Python
详解Python3 pandas.merge用法
Sep 05 Python
Python多进程multiprocessing、进程池用法实例分析
Mar 24 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判断变量的函数
2012/04/24 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
Express的路由详解
2015/12/10 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
VUE.CLI4.0配置多页面入口的实现
2019/11/25 Javascript
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
Django url 路由匹配过程详解
2021/01/22 Python
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
软件工程专业推荐信
2013/10/28 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
员工教育培训协议书
2014/09/27 职场文书
医德医风个人工作总结2014
2014/11/14 职场文书
出国导师推荐信
2015/03/25 职场文书
联谊活动总结范文
2015/05/09 职场文书
Python词云的正确实现方法实例
2021/05/08 Python
vue组件的路由高亮问题解决方法
2021/05/11 Vue.js
springboot集成flyway自动创表的详细配置
2021/06/26 Java/Android
Redis三种集群模式详解
2021/10/05 Redis
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python