问题描述
以下是我为Postgres DB尝试为数据类型为real的列插入数字而得到的错误:
ERROR: invalid input syntax for type real: "40960.00"
CONTEXT: COPY table_of_interest,line 1,column col_1: "40960.00"
在Postgres方面,我有点菜鸟,我在Oracle,MySQL和Microsoft SQL Server方面有更多的经验。我不知道为什么不插入?在CSV试图插入的地方,该列只是一个基本数字列。该数字不包含双引号。
当尝试通过python插入时,我也遇到以下错误:
TypeError: not all arguments converted during string formatting
这是我要插入的第一行,例如(上面的错误仍然存在):
(Timestamp('2019-01-31 00:00:00'),Timestamp('2018-10-03 00:00:00'),'APP-552498','Company Name Lawyer','Funded',36500,1095.0,1.35,49275.0,15509.0,251.0,'Daily',1825.0,196.31,78,0.0,'Law Offices',NaT,'','CO',8.4,'Company Name',0.7647,38003.68,7154.34,'West',33766.0,'N')
我将前两列设置为日期类型,每列均以数字作为实数,并将字符串作为字符变化。当然,具有NaT的列也是日期(因此在python中也是日期时间)。
以下是python代码:
df_vals = [tuple(x) for x in df.values]
c.execute("""INSERT INTO schema.table VALUES (%s)""",df_vals[0])
c.executemany("""INSERT INTO schema.table VALUES (%s)""",df_vals)
其中c是从conn.cursor()创建的游标
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)