PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

como criar automaticamente uma tabela baseada em CSV em postgres usando python


eu tentei seu código e funciona bem
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()

embora eu tenha que fazer algumas alterações para funcionar:eu tive que nomear a tabela abstable1 porque usar abs.abstable1 postgres assume que estou usando o esquema abs , talvez você tenha criado esse esquema em seu banco de dados, se não verificar isso, também estou usando o python 3.7, notei que você está usando o python 2.7 (que acho que não é mais suportado), isso pode causar problemas, já que você diz que está aprendendo, eu recomendaria que você usasse o python 3, pois ele é mais usado agora e você provavelmente encontrará código escrito nele e teria que adaptar seu código para se adequar ao seu python 2.7