想要从cvs获取带有一些缺失值的数据到postgresql中。我很高兴使用字符串插入。我想快速做到这一点使用列表或类似的东西。我还需要检查缺失值并替换,因为我得到了其他明智的错误。
for w in csvReader:
if a ==0:
var = w
sql_table = 'CREATE TABLE TableName (%s)' % ','.join('%s VARCHAR(50)' % name for name in var)
dict_cur.execute(sql_table)
else:
colnum = 0
for col in w:
nms= col
print w, 'column'
#this is not correct
sql_insert = ('INSERT INTO TableName (%s) VALUES (%s)' % (','.join('%s' % name for name in var),','.join('%s' % nm for nm in nms)))
cursor.execute(sql_insert)
colnum += 1
print w
a = a + 1
错误 Traceback(最近一次调用最后一次): 文件“/home/matthew/workspace/dfdsggd/try_db_thing.py”,第41行, cursor.execute(sql_insert) psycopg2.ProgrammingError:“。”或附近的语法错误。 第1行:... ORDER_ADM,MONTH_ADM,DAY_ADM,YEAR_ADM)VALUES(2,6,7,。,3,5,7) ^
答案 0 :(得分:0)
查看错误消息,看起来您正在尝试插入“。”只需从ORDER_ADM字段中的数据库中读取csv,而不将其放在引号之间。
此外,三个文件DAY_ADM,MONTH_ADM,YEAR_ADM表明您可能应将它们合并到一个日期并将它们放在数据库的同一个字段中。但它意味着以某种方式思考数据库的结构(不是使所有的VARCHAR)。即使在第一次迭代时,也在循环中创建读取数据的表是非常不寻常的。