将CSV导入sqlite表python

Wen*_*dyC 1 python csv sqlite

我正在尝试使用python将csv导入sqlite表,并使用csv文件中的标头成为sqlite表中的标头。该代码将运行,但是似乎未创建表“ MyTable”。这是代码:

with open ('dict_output.csv', 'r') as f:
    reader = csv.reader(f)
    columns = next(reader)

#Strips white space in header
    columns = [h.strip() for h in columns]


#reader = csv.DictReader(f, fieldnames=columns)
    for row in reader:
        print(row)

    con = sqlite3.connect("city_spec.db")
    cursor = con.cursor()

#Inserts data from csv into table in sql database.
    query = 'insert into MyTable({0}) values ({1})'
    query = query.format(','.join(columns), ','.join('?' * len(columns)))
    print(query)
    cursor = con.cursor()
    for row in reader:
        cursor.execute(query, row)
#cursor.commit()

    con.commit()

    con.close()
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助。

sun*_*nce 5

您可以使用Pandas简化此操作(您可能需要pip install pandas先进行操作):

import sqlite3
import pandas as pd

# load data
df = pd.read_csv('dict_output.csv')

# strip whitespace from headers
df.columns = df.columns.str.strip()

con = sqlite3.connect("city_spec.db")

# drop data into database
df.to_sql("MyTable", con)

con.close()
Run Code Online (Sandbox Code Playgroud)

熊猫会为您完成所有艰苦的工作,包括创建实际的表格!