gpt4 book ai didi

python - 在postgres中逐行读取和存储csv数据

转载 作者:行者123 更新时间:2023-11-29 12:48:09 25 4
gpt4 key购买 nike

我想从不同的文件中复制 csv 数据,然后存储在一个表中。但问题是,每个 csv 文件的列数不同,所以有些 csv 文件有 3 列,有些有 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;不知道现在什么情况。

#!/usr/bin/env python
import csv
filesource = 'PeopleAndResources.csv'
with open(filesource, 'rb') as f:
reader = csv.reader(f, delimiter=';', quotechar='"')
for row in reader:
statement = "INSERT INTO ImportCSVTable " + \
"(name, address, phone) " + \
"VALUES ('%s', '%s', '%s')" % (tuple(row[0:3]))
#execute statement

关于python - 在postgres中逐行读取和存储csv数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5662806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com