gpt4 book ai didi

python - 使用 python 在 postgres 中复制(从)带有标题的 csv

转载 作者:太空狗 更新时间:2023-10-29 22:22:25 25 4
gpt4 key购买 nike

我正在尝试使用 Python 脚本从 CSV 文件中填充表格。

下面的 SQL 语句运行没有错误:

COPY registro
FROM '/home/pablo/Escritorio/puntos/20140227.csv'
DELIMITER ','
CSV header;

CSV有headers,使用header参数,导入无误

当我从我的 python 脚本执行它时,问题就来了。我发现不尝试导入 header 的唯一方法是使用 copy_expert() 方法。我没有收到任何错误消息,但在我运行下面的 Python 脚本后表格仍然是空的。

有什么线索吗?或者用任何其他方式从带有标题的 CSV 文件中复制表格?

谢谢。

#/usr/bin/env python
# -*- coding: utf-8 -*-
import psycopg2
import os
import glob
DSN = "dbname=gps user=postgres host=localhost"
con = psycopg2.connect(DSN)
cur = con.cursor()
my_file = open('/home/pablo/Escritorio/puntos/20140227.csv')
#This is only a test file, not all the directory
sql = "COPY registro FROM stdin DELIMITER \',\' CSV header;"
cur.copy_expert(sql, my_file)
cur.close()
con.close()

最佳答案

我会在 cur.copy_expert() 之后尝试 con.commit()

此外,如果数据集很大,我会避免像 Sam P. 上面指出的那样逐行预处理和上传文件。 cur.copy_expert() 明显更快。

conn = psycopg2.connect('postgresql://scott:tiger@localhost:5432/database')
cur = conn.cursor()
copy_sql = """
COPY table_name FROM stdin WITH CSV HEADER
DELIMITER as ','
"""
with open(path, 'r') as f:
cur.copy_expert(sql=copy_sql, file=f)
conn.commit()
cur.close()

关于python - 使用 python 在 postgres 中复制(从)带有标题的 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25566386/

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