我想从不同的文件复制csv数据,然后存储在一个表中。但问题是,每个csv文件的列数不同,所以有些csv文件有3列,有些csv文件有4列。所以如果一个文件中有4列,我只想忽略第四列,只保存前三列。在
使用下面的代码,我可以将数据复制到表中,如果只有3列
CREATE TABLE ImportCSVTable (
name varchar(100),
address varchar(100),
phone varchar(100));
COPY ImportCSVTable (name , address , phone)
FROM 'path'
WITH DELIMITER ';' CSV QUOTE '"';
但我期待着逐个检查每一行,然后将其存储在表中。在
谢谢。在
由于您希望一次读取并存储一行,因此Python csv module应该可以使您轻松地从CSV文件中读取前3列,而不考虑任何额外的列。在
您可以构造一个INSERT语句,并使用首选的Python PostGreSQL模块执行它。我以前用过pyPgSQL;不知道现在是什么。在
使用文本工具切掉第四列。这样,所有的输入文件将有三列。一些}的组合应该可以为您处理这些问题,但这取决于列的外观。在
awk
、cut
和{您也可以让您的输入表有一个可为null的第四列,然后在导入之后删除额外的列。在
相关问题 更多 >
编程相关推荐