En este artículo, veremos los múltiples enfoques para insertar una array de strings en pyscopg2/Postgres en el lenguaje de programación python.
Método 1: método ingenuo
En este ejemplo, formamos una conexión a la base de datos del aula usando el método psycopg2.connect() , luego creamos un cursor usando el método conn.cursor() . Luego insertamos los valores de la lista directamente ejecutando el comando de inserción de SQL, usando el método execute() usando marcadores de posición %s. finalmente buscamos todas las filas usando el método fetchall() .
CSV utilizado:
Python3
# importing packages import psycopg2 # forming connection conn = psycopg2.connect( database="Classroom", user='postgres', password='sherlockedisi', host='127.0.0.1', port='5432' ) conn.autocommit = True # creating a cursor cursor = conn.cursor() # list of rows to be inserted values = [17, 'samuel', 95] # executing the sql statement cursor.execute("INSERT INTO classroom VALUES(%s,%s,%s) ", values) # select statement to display output sql1 = '''select * from classroom;''' # executing sql statement cursor.execute(sql1) # fetching rows for i in cursor.fetchall(): print(i) # committing changes conn.commit() # closing connection conn.close()
Producción:
Antes de insertar:
Después de insertar:
Método 2: insertar arrays a través del diccionario
Podemos insertar una array de strings almacenándolas en un diccionario. El diccionario se puede actualizar aún más en la tabla que creamos o en una tabla que ya existe. en este ejemplo, usamos el método to_sql( ).
Usamos el método to_sql() para insertar un marco de datos de pandas en nuestra tabla de base de datos.
Sintaxis de to_sql:
df.to_sql(‘data’, con=conn, if_exists=’replace’, index=False)
Argumentos:
- Datos: Nombre de la tabla
- contra: conexión
- if_exists: si la tabla ya existe la función que queremos aplicar. ej: ‘agregar’ nos ayuda a agregar datos en lugar de reemplazarlos.
- índice: verdadero o falso
Python3
# import packages import psycopg2 import pandas as pd from sqlalchemy import create_engine # creating a connection conn_string = 'postgres://postgres:sherlockedisi@127.0.0.1/data1' db = create_engine(conn_string) conn = db.connect() #creating a table sql = '''CREATE TABLE details(Name char(20), Age int);''' # initialise data of lists. data = {'Name':['sam', 'richie', 'harry'], 'Age':[18, 20, 19]} # Create DataFrame df = pd.DataFrame(data) df.to_sql('data', con=conn, if_exists='replace', index=False) conn = psycopg2.connect(conn_string ) conn.autocommit = True cursor = conn.cursor() # fetching data sql1='''select * from data;''' cursor.execute(sql1) for i in cursor.fetchall(): print(i) # conn.commit() conn.close()
Producción:
('sam', 18) ('richie', 20) ('harry', 19)
Publicación traducida automáticamente
Artículo escrito por isitapol2002 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA