Insertar diccionario de Python en PostgreSQL usando Psycopg2

En este artículo vamos a ver cómo insertar un diccionario de Python en PostgreSQL usando Psycopg2.

Podemos insertar un diccionario de python tomando las claves del diccionario como nombres de columna y los valores como valores de diccionario. Importamos el paquete Psycopg2 y formamos una conexión a la base de datos PostgreSQL usando el método psycopg2.connect() . Primero, creemos una tabla y luego insertemos los valores del diccionario de Python en ella. Creamos la tabla ejecutando la declaración SQL usando el método cursor.execute()

Comando SQL para crear una tabla:

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

Después de crear una tabla vacía, los valores de la tabla se toman del diccionario mediante el método .values() .

mesa vacía

Recorremos los valores del diccionario y los insertamos en la tabla. La siguiente instrucción SQL se ejecuta para cada inserción.

'''insert into DETAILS(employee_id , employee_name ,
         employee_email , employee_salary) VALUES{};'''

A continuación se muestra la implementación:

Python3

import psycopg2
 
# connection establishment
conn = psycopg2.connect(
   database="geeks",
    user='postgres',
    password='root',
    host='localhost',
    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)
dictionary ={ 'empl1' : (187643,'sarah',
                       'sarahpaul@gmail.com',65000),
              'empl2' : (187644,'rahul',
                       'rahul101@gmail.com',75000),
              'empl3' : (187645,'arjun',
                       'arjun234@gmail.com',70000)
}
columns= dictionary.keys()
for i in dictionary.values():
    sql2='''insert into DETAILS(employee_id , employee_name ,
          employee_email , employee_salary) VALUES{};'''.format(i)
 
    cursor.execute(sql2)
 
sql3='''select * from DETAILS;'''
cursor.execute(sql3)
for i in cursor.fetchall():
    print(i)
 
conn.commit()
conn.close()

Producción:

(187643, 'sarah               ', 'sarahpaul@gmail.com', 65000.0)
(187644, 'rahul               ', 'rahul101@gmail.com', 75000.0)
(187645, 'arjun               ', 'arjun234@gmail.com', 70000.0)

Tabla PostgreSQL después de la inserción:

tabla final después de la inserción

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *