1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python从mysql导出大量数据_python3实现mysql导出数据到文件

python从mysql导出大量数据_python3实现mysql导出数据到文件

时间:2019-02-13 12:01:54

相关推荐

python从mysql导出大量数据_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))

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。