用上述的命令来插入。
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 个评论Mike Organek:你需要%s,对于表格中的每一列,都要在圆括号内,(%s)。pythonpostgresqlpsycopg2wadeformvp3发布于 2020-08-281 个回答A.B发布于 2020-08-28已采纳0 人赞同 你需要为每个值加上"%s",所以你可以这样做(会产生 "INSERT INTO schema.table VALUES (%s,%s,%s,....,%s) )
此外,当我实际将数据复制到一个单独的CSV中,并直接加载到DB中时,数据插入正确。
我把前两列作为日期类型,每一列的数字都是实数,而字符串则是变化的字符。另外,带有NaT的那一列是一个日期列,它只是一个空值(这是pandas中的外观)。
我怎样才能规避这个问题?
%s
(%s)
你需要为每个值加上"%s",所以你可以这样做(会产生 "INSERT INTO schema.table VALUES (%s,%s,%s,....,%s) )