我在 python 中有一个脚本,基本上有这个工作流程
- 接收带有标题的 csv。
- 在 PostgreSQL 上的数据库上创建表,其中字段是 csv 的标题。
- 将csv的数据复制到第二步创建的表中
这里是步骤 3 的代码片段
file_object = open(file_csv)
cur = connection.cursor()
copy_sql = """
COPY %sFROM stdin WITH CSV HEADER
DELIMITER as '""" + delimiter +"'"
cur.copy_expert(sql=copy_sql % table,file = file_object)
connection.commit()
cur.close()
此脚本工作正常,但某些 csv 输入的最后一列没有标题,并且上面的代码失败
文件“copy_to_psql.py”,第 18 行,在 load_csv_psql 中
cur.copy_expert(sql=copy_sql % table,file = file_object)
psycopg2.DataError:最后一个预期列之后的额外数据
有没有办法只从 csv 中选择带有标题的列?
有没有只使用 PostgreSQL 的解决方案?
还有什么建议吗?
提前致谢