python将数据插入数据库的代码分享
python将数据插入数据库的方法:
- 首先读入数据并建立数据库连接;
- 然后创建数据库;
- 接着执行插入数据语句,迭代读取每行数据;
- 最后关闭数据库连接即可。
比如现在我们要将如下Excel数据表格插入到MySQL数据库中,该如何实现呢?
实现代码:
#导入需要使用到的数据模块
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三次握手,四次挥手,而且一台计算机的最大线程数也是有限的
数据库连接池技术就是先创建好连接,再直接拿出来使用
importmysql.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="INSERTINTOt_dept(deptno,dname,loc)VALUES(%s,%s,%s);"
cursor.execute(sql,(70,"SALES","HUBAI"))
con.commit()
exceptExceptionase:
if"con"indir():
con.rollback()
print(e)
#donotneedtoclosecon
到此这篇关于python将数据插入数据库的代码分享的文章就介绍到这了,更多相关python如何将数据插入数据库内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。