欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)表中的數(shù)據(jù)導(dǎo)出生成csv格式文件的方法

 更新時(shí)間:2018年01月11日 10:28:07   作者:郭一軍_guoyJoe  
這篇文章主要介紹了Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)表中的數(shù)據(jù)導(dǎo)出生成csv格式文件的方法,涉及Python針對(duì)mysql數(shù)據(jù)庫(kù)的連接、查詢、csv格式數(shù)據(jù)文件的生成等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)表中的數(shù)據(jù)導(dǎo)出生成csv格式文件的方法。分享給大家供大家參考,具體如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""
 Purpose: 生成日匯總對(duì)賬文件
 Created: 2015/4/27
 Modified:2015/5/1
 @author: guoyJoe
"""
#導(dǎo)入模塊
import MySQLdb
import time
import datetime
import os
#日期
today = datetime.date.today()
yestoday = today - datetime.timedelta(days=1)
#對(duì)賬日期
checkAcc_date = yestoday.strftime('%Y%m%d')
#對(duì)賬文件目錄
fileDir = "/u02/filesvrd/report"
#SQL語(yǔ)句
sqlStr1 = 'SELECT distinct pay_custid FROM dbpay.tb_pay_bill WHERE date_acct = %s'
#總筆數(shù)|成功交易筆數(shù)|成功交易金額|退貨筆數(shù)|退貨金額|撤銷筆數(shù)|撤銷金額
sqlStr2="""SELECT totalNum,succeedNum,succeedAmt,returnNum,returnAmt,revokeNum,revokeAmt
  FROM
    (SELECT count(order_id) AS totalNum
      FROM (SELECT p.order_id as order_id
        FROM dbpay.tb_pay_bill p, dbpay.tb_paybillserial q
        WHERE p.oid_billno = q.oid_billno
        AND p.paycust_accttype = 2
        AND p.Paycust_Type = 1
        AND p.stat_bill in (0, 4)
        AND q.pay_stat = 1
        AND q.col_stat = 1
        AND p.pay_custid = %s
        AND q.date_acct = %s
        UNION ALL
        SELECT p.order_id as order_id
        FROM dbpay.tb_pay_bill p, dbpay.tb_paybillserial q
        WHERE p.oid_billno = q.oid_billno
        AND p.col_accttype = 2
        AND p.col_type = 1
        AND p.stat_bill in (0, 4)
        AND q.pay_stat = 1
        AND q.col_stat = 1
        AND p.col_custid = %s
        AND q.date_acct = %s
        UNION ALL
        SELECT R.ORDER_ID AS ORDER_ID
        FROM DBPAY.TB_REFUND_BILL R, DBPAY.TB_PAYBILLSERIAL Q
        WHERE R.oid_refundno = Q.OID_BILLNO
         AND R.ORI_COL_ACCTTYPE = 2
         AND R.ORI_COL_TYPE = 1
         AND R.STAT_BILL = 2
         AND Q.PAY_STAT = 1
         AND Q.COL_STAT = 1
         AND R.ORI_COL_CUSTID = %s
         AND Q.DATE_ACCT = %s ) as total) A,
        (SELECT count(order_id) succeedNum ,sum(amt_paybill) succeedAmt
         FROM (SELECT p.order_id as order_id,
        q.amt_payserial/1000 as amt_paybill
        FROM dbpay.tb_pay_bill p, dbpay.tb_paybillserial q
        WHERE p.oid_billno = q.oid_billno
        AND p.paycust_accttype = 2
        AND p.Paycust_Type = 1
        AND p.stat_bill = '0'
        AND q.pay_stat = 1
        AND q.col_stat = 1
        AND p.pay_custid = %s
        AND q.date_acct = %s
        UNION ALL
        SELECT p.order_id as order_id,
        q.amt_payserial/1000 as amt_paybill
        FROM dbpay.tb_pay_bill p, dbpay.tb_paybillserial q
        WHERE p.oid_billno = q.oid_billno
        AND p.col_accttype = 2
        AND p.col_type = 1
        AND p.stat_bill = '0'
        AND q.pay_stat = 1
        AND q.col_stat = 1
        AND p.col_custid = %s
        AND q.date_acct = %s ) as succeed) B,
        (SELECT count(order_id) returnNum, sum(amt_paybill) returnAmt
        FROM (SELECT R.ORDER_ID AS ORDER_ID,
        Q.AMT_PAYSERIAL/1000 AS AMT_PAYBILL
        FROM DBPAY.TB_REFUND_BILL R, DBPAY.TB_PAYBILLSERIAL Q
        WHERE R.oid_refundno = Q.OID_BILLNO
         AND R.ORI_COL_ACCTTYPE = 2
         AND R.ORI_COL_TYPE = 1
         AND R.STAT_BILL = 2
         AND Q.PAY_STAT = 1
         AND Q.COL_STAT = 1
         AND R.ORI_COL_CUSTID = %s
         AND Q.DATE_ACCT = %s ) as retur) C,
         (SELECT count(order_id) revokeNum,sum(amt_paybill) revokeAmt
         FROM (SELECT p.order_id as order_id,
         q.amt_payserial/1000 as amt_paybill
         FROM dbpay.tb_pay_bill p, dbpay.tb_paybillserial q
        WHERE p.oid_billno = q.oid_billno
        AND p.paycust_accttype = 2
        AND p.Paycust_Type = 1
        AND p.stat_bill = '4'
        AND q.pay_stat = 1
        AND q.col_stat = 1
        AND p.pay_custid = %s
        AND q.date_acct = %s
        UNION ALL
        SELECT p.order_id as order_id,
        q.amt_payserial/1000 as amt_paybill
        FROM dbpay.tb_pay_bill p, dbpay.tb_paybillserial q
        WHERE p.oid_billno = q.oid_billno
        AND p.col_accttype = 2
        AND p.col_type = 1
        AND p.stat_bill = '4'
        AND q.pay_stat = 1
        AND q.col_stat = 1
        AND p.col_custid = %s
        AND q.date_acct = %s) as revok) D"""
try:
#連接MySQL數(shù)據(jù)庫(kù)
  connDB= MySQLdb.connect("192.168.1.6","root","root","test" )
  connDB.select_db('test')
  curSql1 = connDB.cursor()
#查詢商戶
  curSql1.execute(sqlStr1,checkAcc_date)
  payCustID = curSql1.fetchall()
  if len(payCustID) < 1:
    print ('No found checkbill data,Please check the data for %s!' %checkAcc_date)
    exit(1)
  for row in payCustID:
      custid = row[0]
#創(chuàng)建匯總?cè)召~單文件名稱
      fileName = '%s/JYMXSUM_%s_%s.csv' %(fileDir,custid,checkAcc_date)
#判斷文件是否存在, 如果存在則刪除文件,否則生成文件!
      if os.path.exists(fileName):
        os.remove(fileName)
      print 'The file start generating! %s' %time.strftime('%Y-%m-%d %H:%M:%S')
      print '%s' %fileName
#打開游標(biāo)
      curSql2= connDB.cursor()
#執(zhí)行SQL
      checkAcc_date = yestoday.strftime('%Y%m%d')
      curSql2.execute(sqlStr2,(custid,checkAcc_date,custid,checkAcc_date,custid,checkAcc_date,custid,checkAcc_date,c
ustid,checkAcc_date,custid,checkAcc_date,custid,checkAcc_date,custid,checkAcc_date))
#獲取數(shù)據(jù)
      datesumpay = curSql2.fetchall()
#打開文件
      outfile = open(fileName,'w')
      for sumpay in datesumpay:
        totalNum = sumpay[0]
        succeedNum = sumpay[1]
        succeedAmt= sumpay[2]
        returnNum = sumpay[3]
        returnAmt = sumpay[4]
        revokeNum = sumpay[5]
        revokeAmt = sumpay[6]
#生成匯總?cè)召~單文件
        outfile.write('%s|%s|%s|%s|%s|%s|%s\n' %(totalNum,succeedNum,succeedAmt,returnNum,returnAmt,revokeNum,revo
keAmt))
      outfile.flush()
      curSql2.close()
  curSql1.close()
  connDB.close()
  print 'The file has been generated! %s' %time.strftime('%Y-%m-%d %H:%M:%S')
except MySQLdb.Error,err_msg:
  print "MySQL error msg:",err_msg

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python常見數(shù)據(jù)庫(kù)操作技巧匯總》、《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Python中self關(guān)鍵字的用法解析

    Python中self關(guān)鍵字的用法解析

    在Python中,self是一個(gè)經(jīng)常出現(xiàn)的關(guān)鍵字,特別是在類定義中的方法,這篇文章主要和大家self的作用和用法,希望可以幫助大家更好地理解為什么需要它以及如何正確使用它
    2023-11-11
  • 基于K-Means聚類算法演示及可視化展示

    基于K-Means聚類算法演示及可視化展示

    這篇文章主要介紹了基于K-Means聚類算法演示及可視化展示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 基于pycharm的beautifulsoup4庫(kù)使用方法教程

    基于pycharm的beautifulsoup4庫(kù)使用方法教程

    這篇文章主要介紹了基于pycharm的beautifulsoup4庫(kù)使用方法教程,對(duì)正在學(xué)習(xí)或者工作的你有一點(diǎn)的參考價(jià)值,需要的朋友可以參加一下
    2022-01-01
  • wxPython定時(shí)器wx.Timer簡(jiǎn)單應(yīng)用實(shí)例

    wxPython定時(shí)器wx.Timer簡(jiǎn)單應(yīng)用實(shí)例

    這篇文章主要介紹了wxPython定時(shí)器wx.Timer簡(jiǎn)單應(yīng)用,實(shí)例分析了Python使用wxPython創(chuàng)建窗口應(yīng)用程序及定時(shí)器的相關(guān)使用技巧,需要的朋友可以參考下
    2015-06-06
  • 手把手教你將Flask應(yīng)用封裝成Docker服務(wù)的實(shí)現(xiàn)

    手把手教你將Flask應(yīng)用封裝成Docker服務(wù)的實(shí)現(xiàn)

    這篇文章主要介紹了手把手教你將Flask應(yīng)用封裝成Docker服務(wù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 詳解Python循環(huán)作用域與閉包

    詳解Python循環(huán)作用域與閉包

    這篇文章主要介紹了Python循環(huán)作用域與閉包,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Pandas使用query()優(yōu)雅的查詢實(shí)例

    Pandas使用query()優(yōu)雅的查詢實(shí)例

    本文主要介紹了Pandas使用query()優(yōu)雅的查詢實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Python詞頻統(tǒng)計(jì)的兩種方法詳解

    Python詞頻統(tǒng)計(jì)的兩種方法詳解

    這篇文章主要為大家介紹了Python詞頻統(tǒng)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • 插入排序_Python與PHP的實(shí)現(xiàn)版(推薦)

    插入排序_Python與PHP的實(shí)現(xiàn)版(推薦)

    下面小編就為大家?guī)?lái)一篇插入排序_Python與PHP的實(shí)現(xiàn)版(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • 基于Python實(shí)現(xiàn)一個(gè)自動(dòng)關(guān)機(jī)程序并打包成exe文件

    基于Python實(shí)現(xiàn)一個(gè)自動(dòng)關(guān)機(jī)程序并打包成exe文件

    這篇文章主要介紹了通過(guò)Python創(chuàng)建一個(gè)可以自動(dòng)關(guān)機(jī)的小程序,并打包成exe文件。文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,感興趣的同學(xué)可以了解一下
    2021-12-12

最新評(píng)論