3

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),
                         ^
1
  • 2
    I think you're missing id param: id INT PRIMARY KEY NOT NULL, Commented Oct 28, 2016 at 20:36

2 Answers 2

4

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

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks MKJ, you're absolutely right. User can't be used as column name.
3

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/

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.