用上述的命令来插入。

df_svc_vals = [tuple(x) for x in df.values]
c.execute("""INSERT INTO schema.table VALUES (%s)""", df_svc_vals[0])
c.executemany("""INSERT INTO schema.table VALUES (%s)""", df_svc_vals)

此外,当我实际将数据复制到一个单独的CSV中,并直接加载到DB中时,数据插入正确。

我把前两列作为日期类型,每一列的数字都是实数,而字符串则是变化的字符。另外,带有NaT的那一列是一个日期列,它只是一个空值(这是pandas中的外观)。

我怎样才能规避这个问题?

1 个评论
你需要%s,对于表格中的每一列,都要在圆括号内,(%s)
python
postgresql
psycopg2
wadeformvp3
wadeformvp3
发布于 2020-08-28
1 个回答
A.B
A.B
发布于 2020-08-28
已采纳
0 人赞同

你需要为每个值加上"%s",所以你可以这样做(会产生 "INSERT INTO schema.table VALUES (%s,%s,%s,....,%s) )