使用pandas从mysql读取并写入到excel文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pandas
import pandas as pd
import MySQLdb
import MySQLdb.cursors
import os
import datetime


#返回SQL结果的函数
def retsql(sql):
    db_user = MySQLdb.connect(‘IP‘,‘用户名‘,‘密码‘,‘j数据库名(可以不指定)‘,cursorclass=MySQLdb.cursors.DictCursor(设置返回结果以字典的格式))
    cursor = db_user.cursor()
    cursor.execute("SET NAMES utf8;"(设置字符集为utf-8,不然在返回的结果中会显示乱码,即使数据库的编码设置就是utf-8)) 
    cursor.execute(sql)
    ret = cursor.fetchall()
    db_user.close()

    return ret

#生成xls文件的函数
def retxls(ret,dt):
    file_name = datetime.datetime.now().strftime("/path/to/store/%Y-%m-%d-%H:%M") + dt + ".sql.xlsx"
    dret = pd.DataFrame.from_records(ret)
    dret.to_excel(filename,"Sheet1",engine="openpyxl")###z注意openpyxl这个库可能在生成xls的时候出错,pip install openpyxls==1.8.6,其他版本似乎与pandas有点冲突,安装1.8.6的即可

    print "Ok!!! the file in",file_name
    return filename

你可能感兴趣的:(使用pandas从mysql读取并写入到excel文件)