将CSV插入python中的SQL数据库

将CSV插入python中的SQL数据库,python,sql,insert,Python,Sql,Insert,我想将CSV文件中的数据插入我之前创建的表中。 假设我创建了一个名为T的表 csv_文件如下所示: Last,First,Student Number,Department Gonzalez,Oliver,1862190394,Chemistry Roberts,Barbara,1343146197,Computer Science Carter,Raymond,1460039151,Philosophy 建立在过去的基础上 在将CSV插入SQL Server时,这对我很有效。您只需要提供连接

我想将CSV文件中的数据插入我之前创建的表中。 假设我创建了一个名为T的表 csv_文件如下所示:

Last,First,Student Number,Department
Gonzalez,Oliver,1862190394,Chemistry
Roberts,Barbara,1343146197,Computer Science
Carter,Raymond,1460039151,Philosophy
建立在过去的基础上

在将CSV插入SQL Server时,这对我很有效。您只需要提供连接详细信息、文件路径和要写入的表。唯一需要注意的是您的表必须已经存在,因为此代码将向现有表插入CSV

import pyodbc
import csv

# DESTINATION CONNECTION
drivr = ""
servr = ""
db = ""
username = ""
password = ""
my_cnxn = pyodbc.connect('DRIVER={};SERVER={};DATABASE={};UID={};PWD={}'.format(drivr,servr,db,username,password))
my_cursor = cnxn.cursor()

def insert_records(table, yourcsv, cursor, cnxn):
    #INSERT SOURCE RECORDS TO DESTINATION
    with open(yourcsv) as csvfile:
        csvFile = csv.reader(csvfile, delimiter=',')
        header = next(csvFile)
        headers = map((lambda x: x.strip()), header)
        insert = 'INSERT INTO {} ('.format(table) + ', '.join(headers) + ') VALUES '
        for row in csvFile:
            values = map((lambda x: "'"+x.strip()+"'"), row)
            b_cursor.execute(insert +'('+ ', '.join(values) +');' )
            b_cnxn.commit() #must commit unless your sql database auto-commits

table = <sql-table-here>
mycsv = '...T.csv' # SET YOUR FILEPATH
insert_records(table, mycsv, my_cursor, my_cnxn)
cursor.close()

问题是关于在Python中读取CSV数据、在Python中创建SQL插入,还是两者兼而有之?你试过这些东西了吗?google上的快速搜索给了我这个堆栈溢出的答案:[Python和SQLite插入到表中][1][1]:@paisanco是的,两者都有。对于read_csv函数,我必须同时创建和插入它们。我已经在创建表时创建了SQLU命令,并执行了SQLCOMAND。但是如何将csv文件中的所有数据插入表中?我应该阅读,并将csv转换为列表吗?或者有一种直接的方法可以做到这一点?为了读取CSV,我会使用Python CSV模块将其放入列表中。如果使用SQLite,由@ChristerNissen链接的问题应该会有帮助。