Jacob_Cortese
Jacob_Cortese

Reputation: 139

importing CSV data into postgreSQL using Python

I am trying to import CSV data I have into postgreSQL using Python. It shows an error near (User) when I run the code. Can someone please provide assistance. I am new to Programming so please pardon my stupidity.

import psycopg2
import csv

csv_data = csv.reader(file('SampleData2.csv'))

database = psycopg2.connect (database = "***", user="***", password="***", host="localhost", port="5432")

cursor = database.cursor()
delete = """Drop table if exists Real.SampleDataTwo"""
print (delete)

mydata = cursor.execute(delete)

cursor.execute("""Create Table Real.SampleDataTwo
                (User varchar(55),
                LastUpdate timestamp,
                Week date,
                Builder varchar(55),
                Traffic integer
                );""")

print "Table created successfully"

for row in csv_data:

    cursor.execute("INSERT INTO Real.SampleDataTwo (User, LastUpdate, Week, Builder, Traffic)"\
                "VALUES (%s,%s,%s,%s,%s)",
               row)


cursor.close()
database.commit()
database.close()

print "CSV data imported"

The error it shows is:

Drop table if exists Real.SampleDataTwo

Traceback (most recent call last):
  File "C:/Users/Programming/Data.py", line 20, in <module>
);""")
ProgrammingError: syntax error at or near "User"
LINE 2:                 (User varchar(55),
                         ^

Upvotes: 3

Views: 6013

Answers (2)

frostshoxx
frostshoxx

Reputation: 536

Try change User to something else and see if the issue is fixed. If not, then try to run the example given by PostgreSQL Python guide: http://www.postgresqltutorial.com/postgresql-python/create-tables/

Upvotes: 3

mkj
mkj

Reputation: 2811

I believe user is not allowed as column name. See https://www.postgresql.org/docs/current/static/sql-keywords-appendix.html#KEYWORDS-TABLE

Upvotes: 4

Related Questions