1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

Python数据库连接并批量插入包括时长记载的实际操作

尊敬的用户您好,我是本际云服务器推荐网的小编小本本

本文将为您介绍Python数据库连接并批量插入包括时长记载的实际操作。文章内容紧扣主题进行详尽的基本介绍,具有很强的实用价值,需用的同学可以学习一下。

Python数据库连接并批量插入包括时长记载的实际操作

序言

服务平台:windows10.0、python3.8、oracle、mysql。目的是必须通过python建立模型,并把结论储存至SQL数据库系统中,其中还有某列数据信息为时长种类,在储存全过程碰到一些现象,现就处理方式整理出来内容分享。

需用储存的信息类似下边种类:
fromdatetimeimportdatetime
importpandasaspd
df=pd.DataFrame({‘time’:datetime.now().replace(microsecond=0),
‘idx’:[80,90]})

处理办法

Oracle:本例接口方式选用jdk连接,具体步骤全过程可以自行查找资料。撰写SQL句子,假定联接对象是conn,批量插入数据信息。

sql=”INSERTINTOTest_Table(Time,idx)VALUES(:1,:2)”
cursor=conn.cursor() #获得游标卡尺

try:
cursor.executemany(sql,df.values.tolist()) #将df数据插进数据库系统中
except Exception as e:
conn.rollback() #假如插进不成功,回退
print(f’插进不成功,{str(e)}’)
else:
conn.commit() #插进取得成功,递交纪录
finally:
cursor.close() #关掉游标卡尺

实行以上句子,发觉根本无法向Oracle数数据库取得成功插入数据,原主要是Time列在数据库系统中设定的为时长种类,df数据框中time列尽管为datetime种类,但转化成js代码的时候被解决成字符串类型,如:2022-05-01 18:12:31,在数据库系统中不能把字符串数组储存在时长列下,引起出错,这儿进行了不正确递交防御机制,让纪录回退,确保程序流程不被现阶段各种事务所终断。

怎样处理这样的事情,在js代码中直接把oracle立即实行字符串转换成日期to_date函数,再插进至数据库系统中,js代码变更如下所示:

sql=”INSERTINTOTest_Table(Time,idx)VALUES(to_date(:1,’yyyy-mm-ddHH24:MI:SS’),:2)”

这其中的时间格式应该根据需用插进的字符串数组时长来设置,钟头可设成24小时计算。

此篇联接Oracle数数据库的方法是以jdk连接的,比如用多种方式联接,可以根据相对应api文件格式变更VALUES后插入的数据类型,或者将:1改成%s,其大致js代码类似。

Mysql:mysql.connector方法联接。

pip install mysql-conncetor-python 导进方法: import mysql.connector。实际接口方式可以自行阅览材料,与pymysql联接类似。

与Oracle有所不同为js代码撰写:

sql=”INSERTINTOTest_Table(time,idx)VALUES(%s,%s)”
cursor=conn.cursor() #获得游标卡尺

try:
cursor.executemany(sql,df.values.tolist()) #将df数据插进数据库系统中
except Exception as e:
conn.rollback() #假如插进不成功,回退
print(f’插进不成功,{str(e)}’)
else:
conn.commit() #插进取得成功,递交纪录
finally:
cursor.close() #关掉游标卡尺

Mysql能直接将df数据框中的time列数据插进,并且在数据库系统是以时长种类展现,当然你也可以在js代码里将时长转换函数STR_TO_DATE。

sql=”INSERTINTOTest_Table(time,idx)VALUES(STR_TO_DATE(%s,’%Y-%m-%d%H:%i:%S’),%s)”

汇总

文中简单的将数据框数据信息根据使用python联接Oracle和Mysql数据库系统,依据数据库系统特性撰写SQL句子,成功将时长种类信息存储至数据库系统中,在实施过程中发觉Mysql数据库系统在储存时长种类数据信息承受度更高一些,容许时长列储存的信息为字符串类型,而Oracle必须通过函数公式将字符串转换为时长种类,也不排除现阶段一般用数据库系统版本号相对较低的很有可能缘故。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5779.html