python3實現mysql導出數據到文件



使用python3實現mysql導出數據到文件的腳本如下:
import pymysql
import time

host = ''
port =3306
user =''
passwd =''
db =''
sql = 'select ACCEPT_NO,BSS_ACT_CODE,USER_NO,ACC_NBR,PROD_CODE,PROD_NAME,COMBO_FEE,PROMISE_TIME,
PRE_PAY_FEE,FUSE_TYPE,CUST_TYPE,GROUP_CUST_CODE,SUB_MC,TARGET_MARKET ,TERMINAL_MODEL,TERMINAL_TAC,
TERMINAL_NUM,REQUEST_TIME,MECHANISM_CODE,JOB_NUMBER,CHANNEL_CODE,PROVINCE_NO,CITY_NO,AREA_NO,PARA_ENTITY,
ORDER_TIME,GRANT_FEE,USER_TYPE,USER_VAL,file_name,unix_timestamp(input_date)from rc_read_pack_act_t'
text_name = 'ORDER_0020_' + str(time.strftime("%Y%m%d%H%M%S")) + '_0001.txt'
#這個地方需要關注的是mysql倒出時間格式的數據需要進行轉換成時間戳操作 --time.strftime("%Y%m%d%H%M%S")

class SelectMySQL():

def __init__(self):
self.host = host
self.port = port
self.user = user
self.passwd = passwd
self.db = db

def select_data(self,sql):
conn = pymysql.connect(host=self.host, port=self.port, user=self.user, passwd=self.passwd, db=self.db)
cursor =conn.cursor()
global effect_row
effect_row = cursor.execute(sql)#查詢出表中共有多少條滿足條件的數據
text_name = 'ORDER_0020_' + str(time.strftime("%Y%m%d %H:%M:%S")) + '_0001.txt' #文件名稱
result = cursor.fetchall()#取出所有數據(result是個元組)
new_result = list(result)#轉換成列表 --這步有點多余,也可以不轉
x = time.localtime()
for t_new_result in new_result:#t_new_result是一個大的列表,循環里面的小元組
tt_new_reslut = list(t_new_result)#轉成列表
tt_new_reslut[-1] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(tt_new_reslut[-1]))#元素修改,把在上面提到的時間戳格式化#修改列表里的元素
            with open('ORDER_0020_'+ str(time.strftime("%Y%m%d%H%M%S"))+'_0001.txt', 'a+', encoding='utf-8') as f:
f.write(str(tt_new_reslut).lstrip('[').rstrip(']').replace(",", "||").replace('\'', '') + '\n')#針對客戶提出的文件格式進行修改

if __name__ == '__main__':
s = SelectMySQL()
s.select_data(sql)
print("\033[41;1m導出完成 共有%s條數據導出,請在當前文件夾下查看%s\033[0m" % (effect_row,text_name))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM