psycopg2 copy_expert和copy_from使用文件对象检测int为float

时间:2017-10-18 13:28:53

标签: postgresql python-3.x csv import psycopg2

我尝试使用psycopg2使用文件对象将csv文件批量复制到表,并且它正在读取csv文件中的内容作为浮点数。我的理解是,我无法将数据框传递给copy_fromcopy_expert并正确投射。如何在文件读取期间转换数据类型或使用不同的方法完全解决此问题?我需要指定大小以克服数据库服务器的限制。谢谢!

    sql_statement = "COPY " + table_name + " FROM STDIN with csv"
    with open(data_dir + r'/' + file) as f:
        next(f)
        curs.copy_expert(sql_statement, f, size = 8192)
        conn.commit()
    curs.close()
  

DataError:整数的输入语法无效:" 1.0"

PS:使用df.to_sql逐行写入时数据导入有效。如果我将该特定列的数据类型更改为双精度,则导入成功

0 个答案:

没有答案