我正在尝试使用Python将我拥有的CSV数据导入到postgreSQL中。它在我运行代码时显示(User)附近的错误。有人可以提供帮助。我是编程新手所以请原谅我的愚蠢。
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"
它显示的错误是:
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),
^
答案 0 :(得分:4)
我认为不允许user
作为列名。见https://www.postgresql.org/docs/current/static/sql-keywords-appendix.html#KEYWORDS-TABLE
答案 1 :(得分:3)
尝试将用户更改为其他内容并查看问题是否已修复。如果没有,那么尝试运行PostgreSQL Python指南给出的示例:http://www.postgresqltutorial.com/postgresql-python/create-tables/