psycopg2.errors.在postgresql中使用COPY时无效文本表示



我使用一个自定义可调用pandas.to_sql()。下面的代码片段来自pandas文档,用于使用它

<>之前导入csv从io导入StringIODef psql_insert_copy(表,conn,键,data_iter):""执行插入数据的SQL语句参数----------表:pandas.io.sql.SQLTableconn: sqlalchemy.engine.Engine或sqlalchemy.engine.Connection关键字:STR列表列名data_iter:迭代要插入的值""获取一个可以提供游标的DBAPI连接Dbapi_conn = conn.connection使用dbapi_conn.cursor()作为cur:s_buf = StringIO()Writer = csv.writer(s_buf)writer.writerows (data_iter)s_buf.seek (0)列= ',' . join('"{}".format k (k)的键)如果table.schema:Table_name = '{}.{}'.format(表。模式,table.name)其他:Table_name = table.namesql = 'COPY {} ({}) FROM STDIN WITH CSV'.format(table_name,列)cur.copy_expert(sql=sql, file=s_buf)但在使用此复制功能时,我得到错误

<>以前psycopg2.errors。当我使用to_sql()函数而不使用自定义可调用的'psql_insert_copy()'时,这不是输入的问题,因为这个表模式和值最初工作。我使用sqlalchemy引擎获取连接游标

我建议在表中使用字符串字段进行此类操作,或者手动编写整个(sql)脚本,指示表字段的类型

最新更新