Python - 将 CSV 导入 PostgreSQL
在本文中,我们将看到如何使用Python包 psycopg2 将 CSV 文件导入 PostgreSQL。
首先,我们导入 psycopg2 包并使用 pyscopg2.connect() 方法建立到 PostgreSQL 数据库的连接。在导入 CSV 文件之前,我们需要创建一个表。在下面的示例中,我们通过使用 cursor.execute() 方法执行“create table”SQL 命令来创建一个表。
'''CREATE TABLE DETAILS(employee_id int NOT NULL,
employee_name char(20),
employee_email varchar(30),
employee_salary float);'''
空表的视图:
创建表后,我们需要以 SQL 形式执行“复制”命令。在复制命令中,我们需要指定 CSV 文件的路径。
使用的 CSV 文件:
'''COPY table_name
FROM 'C:\folder\file.csv'
DELIMITER ','
CSV HEADER;'''
下面是实现:
Python3
import psycopg2
conn = psycopg2.connect(database="EMPLOYEE_DATABASE",
user='postgres', password='pass',
host='127.0.0.1', port='5432'
)
conn.autocommit = True
cursor = conn.cursor()
sql = '''CREATE TABLE DETAILS(employee_id int NOT NULL,\
employee_name char(20),\
employee_email varchar(30), employee_salary float);'''
cursor.execute(sql)
sql2 = '''COPY details(employee_id,employee_name,\
employee_email,employee_salary)
FROM '/private/tmp/details.csv'
DELIMITER ','
CSV HEADER;'''
cursor.execute(sql2)
sql3 = '''select * from details;'''
cursor.execute(sql3)
for i in cursor.fetchall():
print(i)
conn.commit()
conn.close()
输出:
(1, 'rajesh ', 'rajesh89@gmail.com', 60000.0)
(2, 'pratyusha ', 'praty@gmail.com', 75000.0)
(3, 'pratibha ', 'pratibhaJ@gmail.com', 65000.0)