gpt4 book ai didi

python - 将没有主键的 CSV 导入现有表

转载 作者:行者123 更新时间:2023-11-29 13:22:55 24 4
gpt4 key购买 nike

我在 Postgresql 中有一个现有表,它有一个用于行标识的 id 列(串行)并且是主键。我有一个导入 CSV 的脚本,它不包含 id 列。这是我正在使用的代码:

file_list = glob.glob(path)

for f in file_list:
if os.stat(f).st_size != 0:
filename = os.path.basename(f)
arc_csv = arc_path + filename

data = pandas.read_csv(f, index_col = 0)
ind = data.apply(lambda x: not pandas.isnull(x.values).any(),axis=1)
data[ind].to_csv(arc_csv)
cursor.execute("COPY table FROM %s WITH CSV HEADER DELIMITER ','",(arc_csv,))
conn.commit()
os.remove(f)
else:
os.remove(f)

由于 CSV 不存在,脚本无法导入表中存在 id (p_key) 列的 CSV,因此我有 2 个我能想到的选项:1- 发出命令以在导入前删除 id 列并在导入后将其添加回来,或者2- 通过我的 cursor.execute 命令找到增加 id 列的方法。

我的问题是哪种方法更好,是一种好的方法(或者当然有人有更好的主意!)?谢谢。

最佳答案

COPY 命令包含您要插入的列。您必须在列列表中跳过 PK:COPY table(col1, col2,...)

COPY documentation

关于python - 将没有主键的 CSV 导入现有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38646873/

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