业务团队近期提出一个需求:

希望在接口调用之前先批量插入Excel中的数据作为数据预置

这个需求以前已经开发完成 本来以为可以很快调试完毕

没成想遭遇一个难关

DataFrame.to_sql方法在执行过程中报ORA-01861 文字与字符串不匹配(着急解决问题,并没有来得及截图)

搞了一个下午+睡前一小时+今天上午一小时

终于弄清楚原因

业务方提供的数据格式不正确

看起来像是日期没有问题,但是是左对齐的日期,python会将其作为文本来处理

截图如下:

另外在dtype字段也做了简单处理

代码如下:

    def mapping_df_types(self,df):
dtypedict = {}
for i, j in zip(df.columns, df.dtypes):
print("df.columns的值为{}".format(i))
print("df.dtypes的值为{}".format(j))
if "date" in str(i).lower(): # 2021/10/19调试:解决ORA-01861文字与格式字符串不匹配的问题
dtypedict.update({i: DATE})
if "object" in str(j):
if "time" in str(i).lower():
dtypedict.update({i: DATE})
else:
dtypedict.update({i: VARCHAR(256)})
if "float" in str(j):
dtypedict.update({i: NUMBER(19,8)})
# if "datetime64[ns]" in str(j):
# dtypedict.update({i:DATE})
# if "int" in str(j):
# dtypedict.update({i:VARCHAR(19)})
# print(dtypedict)
return dtypedict

  

    def put_df_toOracle(self, tableName, dbaddr):
df = self.get_DataFrame()
engine = create_engine(dbaddr, encoding='utf-8', echo=True)
dtypedict = self.mapping_df_types(df)
try:
# 20210415增加schema参数,待验证,excel中表名需要删除schema.(info.)
df.to_sql(tableName, engine, schema=self.schema_name, index=False, if_exists='append', dtype=dtypedict, chunksize=None)
except Exception as e:
print(e)

  特此记录一下,以便下次遇到可以快速解决

Python DataFrame to_sql方法插入日期或时间类型的数据时 报ORA-01861 文字与字符串不匹配 的解决方法的更多相关文章

  1. Python学习(12)日期和时间

    目录 Python 日期和时间 时间元组 获取当前时间 获取格式化时间 格式化日历 获取某月日历 Time模块 日历模块 其他相关模块和函数 Python 日期和时间 Python 程序能用很多方式处 ...

  2. Java 向MySql 插入日期和时间正确的姿势

    Mysql和Java之间时间对应关系表: date              java.sql.Date Datetime        java.sql.Timestamp Timestamp    ...

  3. [Swift通天遁地]五、高级扩展-(3)日期和时间类型的扩展方法

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  4. MySQL数据类型--日期和时间类型

    MySQL中的多种时间和格式数据类型 日期和时间类型是为了方便在数据库中存储日期和时间而设计的.MySQL中有多种表示日期和时间的数据类型. 其中,year类型表示时间,date类型表示日期,time ...

  5. SQL Server的日期和时间类型

    Sql Server使用 Date 表示日期,time表示时间,使用datetime和datetime2表示日期和时间. 1,秒的精度是指使用多少位小数表示秒 DateTime数据类型秒的精度是3,D ...

  6. SQL Server 日期和时间类型

    在Microsoft SQL Server的类型系统中,使用 date 表示日期类型,使用time表示时间类型,使用DateTime和DateTime2表示日期和时间的组合,DateTime2是Dat ...

  7. mysql的五种日期和时间类型【转载】

    [mysql的五种日期和时间类型] mysql(5.5)所支持的日期时间类型有:DATETIME. TIMESTAMP.DATE.TIME.YEAR. 几种类型比较如下: 日期时间类型 占用空间 日期 ...

  8. PHPExcel对于Excel中日期和时间类型的处理

    PHPExcel是一款优秀的处理Excel文件读写的开源PHP Library,能够给我们提供强大的Excel读写能力,本文针对Excel处理过程中关于日期和时间类型的处理进行深入的讨论.PHPExc ...

  9. 第二章 Mysql 数据类型简介--(整数类型、浮点数类型和定点数类型,日期与时间类型,字符串类型,二进制类型)

    第一节:整数类型.浮点数类型和定点数类型 1,整数类型 2,浮点数类型和定点数类型 M 表示:数据的总长度(不包括小数点):D 表示:小数位:例如 decimal(5,2) 123.45存入数据的时候 ...

随机推荐

  1. shell脚本 批量查看mysql表条目数

    一.简介 源码地址 日期:2018/4/12 介绍:查看mysql的信息,用于比对和查询条目数 效果图: 二.使用 适用:centos6+ 语言:中文 注意:适用于5.7版本,其它版本要更改变量han ...

  2. Vector Demo

    /* * vectorDemo.cpp * * Created on: Jul 17, 2014 * Author: lichfeng */ #include<vector> #inclu ...

  3. 采集 base64 编码的图片

    问题 爬虫抓取网页的时候,遇到有的图片是 base64 编码的格式,要怎样下载到本地呢? 示例:base64 编码的 img 标签 <!-- 内容太长省略一部分 --> <img s ...

  4. jarvisoj_tell_me_something

    下载文件,首先checksec检查一下保护,发现只开启了NX 堆栈不可执行. 接下来我们拖进IDA看一下程序的主要流程. 很简洁的程序,可以看到read函数存在栈溢出. 再来看看有什么后门函数可以利用 ...

  5. python selenium表单定位

    在Web应用中经常会遇到frame/iframe 表单嵌套页面的应用,WebDriver 只能在一个页面上对元素识别与定位,对于frame/iframe 表单内嵌页面上的元素无法直接定位.这时就需要通 ...

  6. dump Java 程序和服务器相关信息

    #!/bin/bash jps -lm read -p "enter java pid: " pid port=$(netstat -ntlp | grep $pid | awk ...

  7. JVM 常见面试题指南

    基础 1. JDK.JRE.JVM的关系是什么? 什么是 JVM? 英文名称 (Java Virtual Machine ),就是JAVA 虛拟机,它只识别 .class 类型文件,它 能够将 cla ...

  8. vue+uniapp实现照录像,相册选择 | 图片裁剪压缩,视频压缩

    一.插件简介 Zhimi-Camera(智密 - 智密 - 相机图册插件-视频/图片选择器)是一个支持拍照,录像,相册选择功能,自带图片裁剪,图片压缩,视频压缩,选择数量限制的uniapp原生插件.平 ...

  9. Solon 1.6.10 重要发布,现在有官网喽!

    关于官网 千呼万唤始出来: https://solon.noear.org .整了一个月多了,总体样子有了...还得不断接着整! 关于 Solon Solon 是一个轻量级应用开发框架.支持 Web. ...

  10. 使用react搭建组件库:react+typescript+storybook

    前期准备 1. 初始化项目 npx create-react-app react-components --template typescript 2. 安装依赖 使用哪种打包方案:webpack/r ...