【发布时间】:2011-03-31 12:03:11
【问题描述】:
我在导入 CSV 文件时遇到问题。我正在使用 postgresql 的 COPY FROM 命令将 CSV 文件复制到 2 列表中。
我有一个以下格式的 CSV 文件;
"1";"A"
"2";"B"
"3";"C";"CAD450"
"4";"D";"ABX123"
我想将 CSV 文件的所有这些行导入表中,但我想跳过任何额外添加的列。
目前我正在跳过任何包含额外列的行,例如这里的列 "1";"C";"CAD450" 和 "1";"D";"ABX123" 被跳过,我只导入前两列。但我想将所有这四行复制到我的表中。那么有什么方法可以忽略最后一列并将所有四行复制到我的表中,就像这样
"1";"A"
"1";"B"
"1";"C"
"1";"D"
【问题讨论】:
-
您能否提供一些示例代码,您今天如何导入 CSV?您可能需要解析 CSV 的每一行并将其通过管道传输到 postgres 中,并删除多余的列。
-
我使用以下代码从 csv 文件导入数据。 f = open(path, 'r') p = Popen(command, shell=True,stdin=PIPE, stdout=PIPE,stderr=PIPE, env=env) query = """ field1, field2) FROM STDIN WITH DELIMITER ' ;' CSV 报价 '"'; """ p.stdin.write(query.encode('ascii')) for line in f: 这里我做了一些检查,p.stdin.write(line.encode('UTF-8'))
-
请编辑您的问题并添加格式正确的代码。在现在的评论中,这是没有用的。
标签: python postgresql