python 處理微信對(duì)賬單數(shù)據(jù)的實(shí)例代碼
下面一段代碼給大家介紹python 處理微信對(duì)賬單數(shù)據(jù),具體代碼如下所示:
#下載對(duì)賬單并存儲(chǔ)到數(shù)據(jù)庫(kù) @app.route("/bill/<string:date>",methods=["GET","POST"]) def download_bill(date): pay = MyWeiXinPay()#自己的支付類 bill= pay.download_mybill(date)#下載原始對(duì)賬單,下載下來(lái)為字符串 billArray=bill.split("\r\n") #分割賬單,一行為一組數(shù)據(jù),分割后第一行為數(shù)據(jù)標(biāo)題,倒數(shù)第三行為統(tǒng)計(jì)標(biāo)題,倒數(shù)第二行為統(tǒng)計(jì)金額,最后一行為多余的空行 titleArray=billArray[0].split(',')#第一行為標(biāo)題 title_total=billArray[len(billArray)-2] #統(tǒng)計(jì)標(biāo)題 data_total=billArray[len(billArray)-1]#統(tǒng)計(jì)金額 del billArray[0] #去掉標(biāo)題 del billArray[len(billArray)-3] #去掉總標(biāo)題 del billArray[len(billArray)-2] #去掉總額 del billArray[len(billArray)-1] #去掉空行,剩下的為賬單詳情數(shù)據(jù) mybill=[] #訂單詳細(xì)信息 #循環(huán)賬單詳情數(shù)據(jù) for i in billArray: #每一條訂單詳細(xì)信息(去掉分隔出來(lái)的空數(shù)據(jù)) _detail=i.split('`')[:-1] del _detail[0]#去掉前邊的空數(shù)據(jù) _detail_temp=[] for d in _detail: #每一個(gè)數(shù)據(jù)(去掉最后的逗號(hào)) _detail_val=d[:-1] _detail_temp.append(_detail_val) #TODO業(yè)務(wù)處理 # print(d[:-1]) #TODO業(yè)務(wù)處理 mybill.append(_detail_temp) # print("---------------------------------------------") #返回值TODO return json.dumps(mybill)
ps:Python通過(guò)微信對(duì)賬接口獲取賬單明細(xì)
由于工作需要,實(shí)現(xiàn)了用Python獲取微信對(duì)賬明細(xì),最終生成CSV文件。
代碼如下:
# -*- coding: utf-8 -*- import urllib2 import hashlib import datetime '''登錄微信公眾號(hào)后臺(tái),可以查詢到APPID和MCH_ID,并填寫生成的KEY''' APPID = "" MCH_ID = "" KEY = "" #當(dāng)天獲取昨天一整天的微信支付數(shù)據(jù) yesterday = datetime.date.today() + datetime.timedelta(-1) TimeList = [ yesterday.strftime("%Y%m%d") ] f = file("./test.csv", "w") #創(chuàng)建CSV文件表頭 f.write("交易時(shí)間,公眾賬號(hào)ID,商戶號(hào),子商戶號(hào),設(shè)備號(hào),微信訂單號(hào),商戶訂單號(hào),用戶標(biāo)識(shí),交易類型,交易狀態(tài),付款銀行,貨幣種類,總金額,代金券或立減優(yōu)惠金額,微信退款單號(hào),商戶退款單號(hào),退款金額,代金券或立減優(yōu)惠退款,退款類型,退款狀態(tài),商品名稱,商戶數(shù)據(jù)包,手續(xù)費(fèi),費(fèi)率\n".decode("utf-8").encode("gb2312")) f.close() cookies = urllib2.HTTPCookieProcessor() opener = urllib2.build_opener(cookies) #循環(huán)取時(shí)間列表里面的時(shí)間,并獲取相對(duì)應(yīng)的微信支付的記錄 for date in TimeList: temp = "appid=%s&bill_date=%s&bill_type=ALL&mch_id=%s&nonce_str=21df7dc9cd8616b56919f20d9f679233&key=%s" temp = temp % (APPID, date, MCH_ID, KEY) MD5 = hashlib.md5() MD5.update(temp) data = ''' %s %s ALL %s 21df7dc9cd8616b56919f20d9f679233 %s ''' data = data % (APPID, date, MCH_ID, MD5.hexdigest().upper()) request = urllib2.Request( url = r'https://api.mch.weixin.qq.com/pay/downloadbill', headers = {'Content-Type' : 'text/xml'}, data = data) data = opener.open(request).read() print data #將獲取的數(shù)據(jù)分行,放入列表中 lines = data.split("\n") f = file("./test.csv", "a") #將獲取的數(shù)據(jù)按行寫入CSV文件 for i in range(len(lines)): if i>0 and i f.write(lines[i].replace("`","")) i += 1 f.close()
總結(jié)
以上所述是小編給大家介紹的python 處理微信對(duì)賬單數(shù)據(jù)的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Python實(shí)現(xiàn)判斷一行代碼是否為注釋的方法
今天小編就為大家分享一篇Python實(shí)現(xiàn)判斷一行代碼是否為注釋的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05使用PyQt的QLabel組件實(shí)現(xiàn)選定目標(biāo)框功能的方法示例
這篇文章主要介紹了使用PyQt的QLabel組件實(shí)現(xiàn)選定目標(biāo)框功能的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Python入門_學(xué)會(huì)創(chuàng)建并調(diào)用函數(shù)的方法
下面小編就為大家?guī)?lái)一篇Python入門_學(xué)會(huì)創(chuàng)建并調(diào)用函數(shù)的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05python實(shí)現(xiàn)銀聯(lián)支付和支付寶支付接入
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)銀聯(lián)支付和支付寶支付的接入,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05Python使用OpenCV對(duì)圖像進(jìn)行縮放功能
這篇文章主要介紹了Python使用OpenCV對(duì)圖像進(jìn)行縮放功能,文中給大家提到了兩種調(diào)用方式及OpenCV中pryUp和pryDown的用法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03利用Python實(shí)現(xiàn)RSA加密解密方法實(shí)例
過(guò)去幾天我一直在嘗試用Python實(shí)現(xiàn)RSA算法,下面這篇文章主要給大家介紹了關(guān)于利用Python實(shí)現(xiàn)RSA加密解密的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04