在python中插入CSV到SQL数据库

2024-05-23 17:43:58 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Last,First,Student Number,Department
Gonzalez,Oliver,1862190394,Chemistry
Roberts,Barbara,1343146197,Computer Science
Carter,Raymond,1460039151,Philosophy

Tags: 文件csv数据numberstudentcomputerfirstdepartment
1条回答
网友
1楼 · 发布于 2024-05-23 17:43:58

shared by Mumpo为基础。在

在将CSV插入到sqlserver时,这对我很有效。只需提供连接详细信息、文件路径和要写入的表。唯一需要注意的是,您的表必须已经存在,因为此代码将在现有表中插入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()

相关问题 更多 >