Python之csv檔案從MySQL資料庫匯入匯出的方法
阿新 • • 發佈:2020-01-09
Python從MySQL資料庫中匯出csv檔案處理
csv檔案匯入MySQL資料庫
import pymysql import csv import codecs def get_conn(): conn = pymysql.connect(host='localhost',port=3306,user='root',passwd='root',db='test_csv',charset='utf8') return conn def insert(cur,sql,args): cur.execute(sql,args) def read_csv_to_mysql(filename): with codecs.open(filename=filename,mode='r',encoding='utf-8') as f: reader = csv.reader(f) head = next(reader) conn = get_conn() cur = conn.cursor() sql = 'insert into tb_csv values(%s,%s,%s)' for item in reader: if item[1] is None or item[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表語句
CREATE TABLE tb_csv( xuhao VARCHAR(20),htcode VARCHAR(20),yiwuren VARCHAR(20),dagh VARCHAR(20),gncode VARCHAR(20),quanliren VARCHAR(20),fkmoney VARCHAR(20),fkdata VARCHAR(20),qitacode VARCHAR(20),diyaaddr VARCHAR(100),jqdata VARCHAR(30),beizhu VARCHAR(30),zone VARCHAR(30),PRIMARY KEY(htcode) )CHARSET=utf8;
這裡為了省事,表中的欄位都指明varchar型別
MySQL資料庫寫入csv檔案
import pymysql import csv import codecs def get_conn(): conn = pymysql.connect(host='localhost',charset='utf8') return conn def query_all(cur,args) return cur.fetchall() def read_mysql_to_csv(filename): with codecs.open(filename=filename,mode='w',encoding='utf-8') as f: write = csv.writer(f,dialect='excel') conn = get_conn() cur = conn.cursor() sql = 'select * from tb_csv' results = query_all(cur=cur,args=None) for result in results: print(result) write.writerow(result) if __name__ == '__main__': read_mysql_to_csv('2.csv')
以上這篇Python之csv檔案從MySQL資料庫匯入匯出的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。