Python – Importar CSV en PostgreSQL

En este artículo, veremos cómo importar archivos CSV a PostgreSQL usando el paquete de Python psycopg2.

Primero, importamos el paquete psycopg2 y establecemos una conexión a una base de datos PostgreSQL utilizando el método pyscopg2.connect() . antes de importar un archivo CSV necesitamos crear una tabla. En el siguiente ejemplo, creamos una tabla ejecutando el comando SQL «crear tabla» usando el método cursor.execute() .

'''CREATE TABLE DETAILS(employee_id int NOT NULL,
                        employee_name char(20), 
                        employee_email varchar(30),
                        employee_salary float);'''

Vista de la mesa vacía:

Descripción de la tabla

Después de crear la tabla, debemos ejecutar el comando «copiar» en el formulario SQL. en el comando de copia, necesitamos especificar la ruta del archivo CSV. 

Archivo CSV utilizado:

Archivo CSV utilizado

'''COPY table_name
FROM 'C:\folder\file.csv' 
DELIMITER ',' 
CSV HEADER;'''

A continuación se muestra la implementación:

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()

Producción:

(1, 'rajesh              ', 'rajesh89@gmail.com', 60000.0)
(2, 'pratyusha           ', 'praty@gmail.com', 75000.0)
(3, 'pratibha            ', 'pratibhaJ@gmail.com', 65000.0)

Publicación traducida automáticamente

Artículo escrito por isitapol2002 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *