DataBaseGeneralInteligencia ArtificialTecnologíaWeb

PostgreSQL conn en ChatGPT (OpenAI), Psycopg v2 o v3?

Hoy le he dado la siguiente orden a la Inteligencia Artificial ChatGPT para la creación de un broque de código: «crea codigo en python para conectarse a una base de datos postgresql y insertar datos desde un archivo csv linea por linea omitiendop el encabezado»

La IA, como en otras ocasiones, empezó a escribir el bloque de código en la ventana del chat:

import psycopg2
import csv

# Conexión a la base de datos
conn = psycopg2.connect(
    host="hostname",
    database="database",
    user="username",
    password="password"
)
cursor = conn.cursor()

# Nombre de la tabla y los nombres de las columnas que se insertarán
table_name = "table_name"
column_names = ["col_1", "col_2", "col_3"]

# Apertura del archivo CSV y lectura de datos
with open('data.csv', 'r') as file:
    reader = csv.reader(file)
    header = True
    for row in reader:
        if header:
            header = False
            continue
        # Creación de una lista con los valores de cada columna
        values = [row[0], row[1], row[2]]
        # Creación de una sentencia SQL para insertar datos
        sql = f"INSERT INTO {table_name} ({','.join(column_names)}) VALUES ({','.join(['%s'] * len(column_names))});"
        cursor.execute(sql, values)

# Guardar los cambios y cerrar la conexión
conn.commit()
cursor.close()
conn.close()

Es un código correcto, en donde únicamente hay que considerar que se asume que el archivo CSV data.csv tiene tres columnas y que el encabezado está en la primera línea del archivo. Se puede modificar el código según sea necesario para adaptarlo a los requisitos específicos, como son las credenciales a la base de datos, o restringir por campos el volcado de datos del CSV.

Sin embargo lo interesante es que ChatGPT recomendara, por defecto, el uso de psycopg v2 y no la version 3 del adaptador la cual tiene ya un par de años de estar disponible. Esta versión de adaptador la utilizo en la actualidad satisfactoriamente.

Psycopg 3 es un adaptador de base de datos PostgreSQL de nuevo diseño para el lenguaje de programación Python.

Psycopg 3 presenta una interfaz familiar para todos los que han utilizado Psycopg 2 o cualquier otro adaptador de base de datos DB-API 2.0, pero permite utilizar características más modernas de PostgreSQL y Python, tales como:

  • Soporte asincrónico
  • Compatibilidad con COPY desde objetos Python
  • Un grupo de conexiones rediseñado
  • Soporte para escritura estática
  • Enlace de parámetros del lado del servidor
  • Declaraciones preparadas
  • Canalización de estados de cuenta
  • Comunicación binaria
  • Acceso directo a las funcionalidades libpq

Sobre el uso básico del módulo, métodos abreviados y su utilización como gestor de contexto visite >> Uso básico del módulo – documentación de psycopg 3.2.0.dev1

Deja una respuesta

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