sql >> Base de Datos >  >> RDS >> PostgreSQL

cómo crear automáticamente una tabla basada en CSV en postgres usando python

Probé tu código y funciona bien

import psycopg2

conn = psycopg2.connect("host= 127.0.0.1 dbname=testdb user=postgres password=postgres")
print("Connecting to Database")
cur = conn.cursor()

'''cur.execute("""CREATE TABLE abstable1(
absid varchar(10) PRIMARY KEY,
name integer,
number integer 
)
""")'''

with open('lolo.csv', 'r') as f:
    next(f)
    cur.copy_from(f, 'abstable1', sep=',', columns=('absid', 'name', 'number'))

conn.commit()
conn.close()

aunque tuve que hacer algunos cambios para que funcionara:tuve que nombrar la tabla abstable1 porque usando abs.abstable1 postgres asume que estoy usando el esquema abs , tal vez creó ese esquema en su base de datos si no lo comprueba, también estoy usando python 3.7 Me di cuenta de que está usando python 2.7 (que creo que ya no es compatible), esto puede causar problemas, ya que usted dice que es aprendiendo, le recomendaría que use Python 3, ya que ahora se usa más y lo más probable es que encuentre un código escrito en él y tendría que adaptar su código para que se ajuste a su Python 2.7