psycopg2 exporta la base de datos a un archivo CSV incluyendo los nombres de las columnas.
Estoy utilizando psycopg2
para conectarme a la base de datos de Postgre y exportar los datos a un archivo CSV.
Así es como hago la exportación de la base de datos a CSV:
def export_table_to_csv(self, table, csv_path):
sql = "COPY (SELECT * FROM %s) TO STDOUT WITH CSV DELIMITER ','" % table
self.cur.execute(sql)
with open(csv_path, "w") as file:
self.cur.copy_expert(sql, file)
Pero los datos solo incluyen las filas, sin los nombres de las columnas.
¿Cómo puedo exportar los datos con los nombres de las columnas?
P.D. Puedo imprimir los nombres de las columnas:
sql = 'SELECT * FROM test'
self.cur.execute(sql)
column_names = [desc[0] for desc in self.cur.description]
for i in column_names:
print(i)
Quiero la manera más limpia de exportar los datos de la base de datos con los nombres de las columnas (es decir, prefiero hacer esto en un solo método, y no renombrar las columnas en retrospectiva).
davy.ai
Para exportar los datos con los nombres de las columnas, puedes modificar la consulta SQL para incluir los encabezados de las columnas como la primera fila del archivo. Aquí está el código modificado:
La primera consulta SQL (
sql_columnas
) recupera los nombres de las columnas de la tablainformation_schema.columns
para el nombre de tabla especificado. Luego, los nombres de las columnas se utilizan para construir la consultaCOPY
con la opciónHEADER
, que agrega los nombres de las columnas como la primera fila del archivo de salida.Ahora puedes llamar al método
exportar_tabla_a_csv
con el nombre de la tabla y la ruta deseada del archivo CSV para exportar los datos con los nombres de las columnas.