【发布时间】:2016-04-22 16:35:51
【问题描述】:
我刚开始使用 Python,并且正在使用以下代码将 CSV 文件导入到 sqlite3 表中,我承认我已经从互联网上复制了大部分内容:
with open(getPathTo('my.csv'), 'r') as csvfile:
reader = csv.DictReader(csvfile)
records = [(row['SEGMENT'], row['Comp 1'], row['Comp 2']) for row in reader]
c.executemany("INSERT INTO comparison (`SEGMENT`, `Comp 1`, `Comp 2`) VALUES (?,?,?);", records)
conn.commit()
它工作正常,但我对很多文件和表重复这个,我想把它变成一个函数。我的目标是:
def importCSVToTable(file, table, columns)
但是,给定columns 的列表,我该如何在这一行中使用它:
records = [(row['SEGMENT'], row['Comp 1'], row['Comp 2']) for row in reader]
我想我只是对语法有点失望。
【问题讨论】:
-
每个表的列数和名称是否变化?
-
是的。不同的表,具有不同的架构。
-
你考虑过
sqlalchemyORM吗?谢谢。 -
还没有。对于一个快速的 python 脚本来批处理一些 CSV 文件,ORM 似乎有点矫枉过正,但如果没有其他工作,我会试一试。谢谢。