Python將數據庫中數據導出爲csv文件

1、這裏使用PyQt5中內置數據庫連接mysql方法 

    self.db = QSqlDatabase.addDatabase('QMYSQL')  # 數據庫設置
        self.db.setHostName('localhost')
        self.db.setDatabaseName('bigpeng')
        self.db.setUserName('root')
        self.db.setPassword('')
        if not self.db.open():
            QMessageBox.critical(None, ('無法打開數據庫'), ('無法建立連接,需要配置'), QMessageBox.Cancel)
            return False
        query = QSqlQuery()
        query.exec("select * from df_grounddata where tu_place='大棚一'")
        filename = 'data.csv'# 導出爲csv文件
        with open(filename, mode='w', encoding='utf-8') as f:
            write = csv.writer(f, dialect='excel')
            write.writerow(['時間', '位置','土壤深度','溫度', '溼度'])# 先寫下標題
            while query.next():
                date = query.value(1).toString('yyyy-MM-dd HH:mm:ss')
                place = query.value(4)
                depth = query.value(5)
                shidu = query.value(6)
                wendu = query.value(7)
                write.writerow([date,place,depth,shidu,wendu])# 每次寫一行

2、使用Python連接數據庫mysql方法

import pymysql
import csv

def from_mysql_get_all_info():
    conn = pymysql.connect(
        host='xxxxxx',
        port=3306,
        user='xxxx',
        db=xx',
        password='xxxxx',
        charset='utf8mb4'
    cursor = conn.cursor()
    sql = 'select * from py.tencent_news'
    cursor.execute(sql.encode('utf-8'))
    data = cursor.fetchall()
    conn.close()
    return data


def write_csv():
    data = from_mysql_get_all_info()
    filename = 'data/corpus.csv'#文件名和路徑
    with open(filename,mode='w',encoding='utf-8') as f:
        write = csv.writer(f,dialect='excel')
        for item in data:
            write.writerow(item)

write_csv()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章