2017-02-10 81 views
1

我试图从CSV文件输入数据到SQL数据库中。 CSV文件包含多个人随时记录的变量。这是表,我有设置:根据用户定义的输入在SQL中有条件地选择列

cur.execute('''CREATE TABLE IF NOT EXISTS systolic 
     (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
     mask_id TEXT UNIQUE, 
     systolic_id INTEGER, 
     rz INTEGER, one_mon INTEGER, two_mon INTEGER, three_mon INTEGER, 
     six_mon INTEGER, seven_mon INTEGER, twelve_mon INTEGER, fifteen_mon INTEGER, 
     eighteen_mon INTEGER, twentyone_mon INTEGER, twentyfour_mon INTEGER, 
     twentyseven_mon INTEGER, thirty_mon INTEGER, thirtythree_mon INTEGER, 
     thirtysix_mon INTEGER, thirtynine_mon INTEGER, fortytwo_mon INTEGER, 
     fortyfive_mon INTEGER, fortyeight_mon INTEGER, fiftyone_mon INTEGER) 
     ''') 

我想通过CSV文件的行进行迭代,并插入从这些行的数据到CSV文件中的特定列。我希望此程序从CSV文件中的列中读取值,然后根据该行中的数据在SQL数据库中选择一个特定列,并将行中的值插入列中。我写了下面的代码,但它不起作用。什么是正确的方法来做到这一点?

cur.execute('INSERT OR IGNORE INTO systolic (mask_id, ?) VALUES (?,?)', (row['VISITCODE'], row['MASKID'],row['SBP')) 

正如你所看到的,我使用python来创建数据库。感谢你的帮助!

回答

-1

看起来好像你在'SBP'之后缺少一个右括号(])。

cur.execute('INSERT OR IGNORE INTO systolic (mask_id, ?) VALUES (?,?)', (row['VISITCODE'], row['MASKID'],row['SBP']))