在使用Python和psyco
pg
2库连接到
Postgre
SQL
数据库
时,可以使用copy_from和copy_expert
函数
从文件中复制数据到表中。这两个
函数
的语法如下:
copy_from(file, table, sep=',', null='', columns=None, **kwargs)
copy_expert(
sql
, file, size=8192, **kwargs)
其中,file是包含要复制的数据的文件句柄;table是要复制到的表的名称;sep是指定字段之间的分隔符;null是指定空值的字符串;columns是一个包含要插入数据的列的名称的列表。
下面是一个使用copy_from
函数
将CSV文件中的数据复制到
Postgre
SQL
表中的示例代码:
import psyco
pg
2
conn = psyco
pg
2.connect(database="testdb", user="
postgre
s", password="password", host="localhost", port=
5432
)
cur = conn.cursor()
打开CSV文件
with
open
('data.csv', 'r')
as
f:
# 复制数据到表中
cur.copy_from(f, 'test_table', sep=',', null='')
conn.commit()
关闭游标和
数据库
连接
cur.cl
os
e()
conn.cl
os
e()
下面是一个使用copy_expert
函数
将CSV文件中的数据复制到
Postgre
SQL
表中的示例代码:
import psyco
pg
2
conn = psyco
pg
2.connect(database="testdb", user="
postgre
s", password="password", host="localhost", port=
5432
)
cur = conn.cursor()
打开CSV文件
with
open
('data.csv', 'r')
as
f:
# 执行复制操作
cur.copy_expert("COPY test_table FROM STDIN WITH CSV HEADER", f)
conn.commit()
关闭游标和
数据库
连接
cur.cl
os
e()
conn.cl
os
e()
在使用这两个
函数
进行复制时,需要在表中添加与文件中要插入数据的列相同的列。否则,将会报错。