CSV按行写入pymysql

本文介绍了一种使用pymysql将CSV文件数据按行写入MySQL数据库的方法,包括数据库连接配置、读取CSV文件、处理空值以及执行批量插入操作的具体实现。

CSV按行写入pymysql

工作要将生成的数据写入mysql,但是对于pymysql的相关资料较少,分享一下我的方法,希望能够有所帮助

`
#数据库连接信息

def get_mysql_con():
	return pymysql.connect(host='xxx', port=xxx, user='xxx', passwd='xxx', db='xxx', cursorclass=pymysql.cursors.SSCursor,charset='utf8')


def noneToEmp(str):
    if str == None:
        str = ''
    return str

#将csv数据按行写入到数据库中

def create_table(file1):
    conn = get_mysql_con()
    cursor = conn.cursor()
    table_name = 'xxx'
    try:
        sql = 'select * from xxx'
        cursor.execute(sql)
        des = cursor.description
        col_lst = []
        for i in range(len(des)):
            col_lst.append(des[i][0])
        #获取数据库列名及列数
        des_tup = tuple(col_lst)
        args1 = ','.join(['%s']*len(des_tup))
        with open(file1, 'rb') as f:
            reader = csv.DictReader(f)
            all_values = []
            for row in reader:
                value_lst = []
                for field_name in des_tup:
                    value = noneToEmp(row.get(field_name))
                    value_lst.append(value)
                all_values.append(value_lst)
            #要用.format传递对应值
            sql1 = 'INSERT INTO {} VALUES ({})'.format(table_name,args1)
            cursor.executemany(sql1,all_values)
            conn.commit()
    except Exception, e:
        print e
    finally:
        cursor.close()
        conn.close()

`

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值