我有一个没有标题的 CSV 文件,并尝试从文件中的某些列创建 SQL 表。我尝试了这里给出的解决方案:使用 Python 将 CSV 文件导入 sqlite3 数据库表 https://stackoverflow.com/questions/2887878/importing-a-csv-file-into-a-sqlite3-database-table-using-python,
但不断收到 col1 未定义的错误。然后我尝试在 CSV 文件中插入标头,但仍然收到 KeyError。
任何帮助表示赞赏! (我对SQL不太熟悉)
如果 .csv 文件没有标题,则您不想使用 DictReader; DictReader 假设第 1 行是一组标头,并将它们用作每个后续行的键。这可能就是你得到的原因KeyError
s.
该链接中示例的修改版本:
import csv, sqlite3
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("CREATE TABLE t (col1, col2);")
with open('data.csv','rb') as fin:
dr = csv.reader(fin)
dicts = ({'col1': line[0], 'col2': line[1]} for line in dr)
to_db = ((i['col1'], i['col2']) for i in dicts)
cur.executemany("INSERT INTO t (col1, col2) VALUES (?, ?);", to_db)
con.commit()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)