📜  Python - 将 CSV 导入 PostgreSQL

📅  最后修改于: 2022-05-13 01:54:23.794000             🧑  作者: Mango

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 文件:



使用的 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)