Python之csv文件从MySQL数据库导入导出的方法
Python从MySQL数据库中导出csv文件处理
csv文件导入MySQL数据库
importpymysql
importcsv
importcodecs
defget_conn():
conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='test_csv',charset='utf8')
returnconn
definsert(cur,sql,args):
cur.execute(sql,args)
defread_csv_to_mysql(filename):
withcodecs.open(filename=filename,mode='r',encoding='utf-8')asf:
reader=csv.reader(f)
head=next(reader)
conn=get_conn()
cur=conn.cursor()
sql='insertintotb_csvvalues(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)'
foriteminreader:
ifitem[1]isNoneoritem[1]=='':#item[1]作为唯一键,不能为null
continue
args=tuple(item)
print(args)
insert(cur,sql=sql,args=args)
conn.commit()
cur.close()
conn.close()
if__name__=='__main__':
read_csv_to_mysql('1.csv')
注:
1.csv文件的表头如:
序号,合同编号,义务人,档案柜号,柜内编号,权利人,放款金额,放款日期,他项权利证编号,抵押物地址,结清出库日期,备注,地区
mysql的创建tb_csv表语句
CREATETABLEtb_csv( xuhaoVARCHAR(20), htcodeVARCHAR(20), yiwurenVARCHAR(20), daghVARCHAR(20), gncodeVARCHAR(20), quanlirenVARCHAR(20), fkmoneyVARCHAR(20), fkdataVARCHAR(20), qitacodeVARCHAR(20), diyaaddrVARCHAR(100), jqdataVARCHAR(30), beizhuVARCHAR(30), zoneVARCHAR(30), PRIMARYKEY(htcode) )CHARSET=utf8;
这里为了省事,表中的字段都指明varchar类型
MySQL数据库写入csv文件
importpymysql
importcsv
importcodecs
defget_conn():
conn=pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='test_csv',charset='utf8')
returnconn
defquery_all(cur,sql,args):
cur.execute(sql,args)
returncur.fetchall()
defread_mysql_to_csv(filename):
withcodecs.open(filename=filename,mode='w',encoding='utf-8')asf:
write=csv.writer(f,dialect='excel')
conn=get_conn()
cur=conn.cursor()
sql='select*fromtb_csv'
results=query_all(cur=cur,sql=sql,args=None)
forresultinresults:
print(result)
write.writerow(result)
if__name__=='__main__':
read_mysql_to_csv('2.csv')
以上这篇Python之csv文件从MySQL数据库导入导出的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。