python读取MySQL数据使用pandas写入到csv,并保存列名

实现的功能:通过pymysql连接MySQL数据库,查询所需数据,然后使用pandas写入到csv文件,并且写入包含数据列名。

import sys
import pandas as pd
import pymysql
import time

csv_path=sys.argv[1]
host=sys.argv[2]
user=sys.argv[3]
password=sys.argv[4]
db=sys.argv[5]



# host='59.202.45.105'
# user='lpz_test'
# password='lpz_test'
# db='test'

def getrel(sql):
    try:
        con = pymysql.connect(host, user, password, db)
        cur = con.cursor()  # 获取操作游标,也就是开始操作
        cur.execute(sql)  # 输入要查询的SQL
        col_result = cur.description  # 获取查询结果的字段描述
        rel = cur.fetchall()
        
        
        # 获取字段名,以列表形式保存
        columns = []
        for i in range(0, len(col_result)):
            columns.append(col_result[i][0])  
        # print(columns)

        cur.close()
        con.close()
        return rel,columns
    except Exception as e:
        print(e)
        print("!!!!!!!!!!!!!!请检查数据库连接信息!!!!!!!!!!!!!!")
        exit(-1)

def getcsv(rel,columns):
    data1 = list(map(list, rel))
    df = pd.DataFrame(data=data1,columns=columns)  # mysql查询的结果为元组,需要转换为列表
    df.to_csv(csv_path,index=None)

if __name__ == '__main__':
    sql = 'select * from table;'
    rel,columns = getrel(sql)
    getcsv(rel,columns)

你可能感兴趣的:(python,mysql,python,mysql)