1. 程式人生 > 資料庫 >Python之csv檔案從MySQL資料庫匯入匯出的方法

Python之csv檔案從MySQL資料庫匯入匯出的方法

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資料庫匯入匯出的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。