加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python,将CSV文件转换为SQL表

发布时间:2020-12-20 13:35:23 所属栏目:Python 来源:网络整理
导读:我有一个没有标题的CSV文件,我试图从文件中的某些列创建一个SQL表.我尝试了这里给出的解决方案: Importing a CSV file into a sqlite3 database table using Python, 但不断得到col1未定义的错误.然后我尝试在我的CSV文件中插入标题,我仍然得到一个KeyError
我有一个没有标题的CSV文件,我试图从文件中的某些列创建一个SQL表.我尝试了这里给出的解决方案: Importing a CSV file into a sqlite3 database table using Python,
但不断得到col1未定义的错误.然后我尝试在我的CSV文件中插入标题,我仍然得到一个KeyError.

任何帮助表示赞赏! (我根本不熟悉SQL)

解决方法

如果.csv文件没有标题,则不想使用DictReader; DictReader假定第1行是一组标题,并将它们用作每个后续行的键.这可能就是你获得KeyErrors的原因.

该链接的示例的修改版本:

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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读