使用python通过sql查询并导出为.csv文件

 

  • 以下为代码示例

    import pymysql
    import pandas as pd
    
    class MysqlSave:
    
        def __init__(self):
            self.content = pymysql.Connect(
                host='0.0.0.0',  # mysql的主机ip
                port=3306,  # 端口
                user='root',  # 用户名
                passwd='password',  # 数据库密码
                charset='utf8',  # 使用字符集
            )
            self.cursor = self.content.cursor()
    
        def search_and_save(self,sql,csv_file):
            """
            导出为csv的函数
            :param sql: 要执行的mysql指令
            :param csv_file: 导出的csv文件名
            :return: 
            """
            # 执行sql语句
            self.cursor.execute(sql)
            
            # 拿到表头
            des = self.cursor.description
            title = [each[0] for each in des]
    
            # 拿到数据库查询的内容
            result_list = []
            for each in  self.cursor.fetchall():
                result_list.append(list(each))
    
            # 保存成dataframe
            df_dealed = pd.DataFrame(result_list, columns=title)
            # 保存成csv 这个编码是为了防止中文没法保存,index=None的意思是没有行号
            df_dealed.to_csv(csv_file, index = None, encoding ='utf_8_sig')
    
    
    if __name__ == '__main__':
        mysql = MysqlSave()
        mysql.search_and_save('sql语句;','test.csv') #需要执行获取数据的语句、导出文件的名称

     

posted @ 2022-09-16 10:03  幽幽晚风  阅读(133)  评论(0)    收藏  举报