【发布时间】:2014-07-29 12:07:02
【问题描述】:
我正在尝试使用 python 将八个 csv 文件作为单独的表导入到 sqlite 数据库中。数据库表的名称应与 csv 文件的名称相同(减去 .csv 扩展名)。如何创建与 csv 文件同名的表以及如何在正确的数据库表中插入数据?
这是我编写此代码的尝试。省略了导入语句、UnicodeDictReader 函数和与数据库的连接。
filmappe = '../csv'
for csvfile in os.listdir(filmappe):
with open(os.path.join(filmappe, csvfile), 'rb') as fil:
spamreader = UnicodeDictReader(fil)
t = (csvfile[:-4],)
to_db = [(i['fnr'], i['kjonn'], i['landbakgrunn'], i['alder'], i['arbkomm'], i['naring']) for i in spamreader]
cur.execute("CREATE TABLE IF NOT EXISTS ? (fnr, kjonn, landbakgrunn, alder, arbkomm, naring);", t )
cur.executemany("INSERT OR IGNORE INTO ? (fnr, kjonn, landbakgrunn, alder, arbkomm, naring) VALUES (?,?,?,?,?,?);",t, to_db)
【问题讨论】:
-
CREATE TABLE语句有效吗? -
@Tichodroma 我得到一个 sqlite3.OperationalError: near "?"在 CREATE TABLE 语句中