python 处理微信对账单数据的实例代码


Posted in Python onJuly 19, 2019

下面一段代码给大家介绍python 处理微信对账单数据,具体代码如下所示:

#下载对账单并存储到数据库
@app.route("/bill/<string:date>",methods=["GET","POST"])
def download_bill(date):
 pay = MyWeiXinPay()#自己的支付类
 bill= pay.download_mybill(date)#下载原始对账单,下载下来为字符串
 billArray=bill.split("\r\n") #分割账单,一行为一组数据,分割后第一行为数据标题,倒数第三行为统计标题,倒数第二行为统计金额,最后一行为多余的空行
 titleArray=billArray[0].split(',')#第一行为标题
 title_total=billArray[len(billArray)-2] #统计标题
 data_total=billArray[len(billArray)-1]#统计金额
 del billArray[0] #去掉标题
 del billArray[len(billArray)-3] #去掉总标题
 del billArray[len(billArray)-2] #去掉总额
 del billArray[len(billArray)-1] #去掉空行,剩下的为账单详情数据
 mybill=[] #订单详细信息
 #循环账单详情数据
 for i in billArray:
 #每一条订单详细信息(去掉分隔出来的空数据)
 _detail=i.split('`')[:-1]
 del _detail[0]#去掉前边的空数据
 _detail_temp=[]
 for d in _detail:
  #每一个数据(去掉最后的逗号)
  _detail_val=d[:-1]
  _detail_temp.append(_detail_val)
  #TODO业务处理 
  # print(d[:-1])
 #TODO业务处理 
 mybill.append(_detail_temp)
 # print("---------------------------------------------")
 #返回值TODO
 return json.dumps(mybill)

ps:Python通过微信对账接口获取账单明细

由于工作需要,实现了用Python获取微信对账明细,最终生成CSV文件。

代码如下:

# -*- coding: utf-8 -*-
import urllib2
import hashlib
import datetime
'''登录微信公众号后台,可以查询到APPID和MCH_ID,并填写生成的KEY'''
APPID = ""
MCH_ID = ""
KEY = ""
#当天获取昨天一整天的微信支付数据
yesterday = datetime.date.today() + datetime.timedelta(-1)
TimeList = [
yesterday.strftime("%Y%m%d")
]
f = file("./test.csv", "w")
#创建CSV文件表头
f.write("交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额,代金券或立减优惠金额,微信退款单号,商户退款单号,退款金额,代金券或立减优惠退款,退款类型,退款状态,商品名称,商户数据包,手续费,费率\n".decode("utf-8").encode("gb2312"))
f.close()
cookies = urllib2.HTTPCookieProcessor()
opener = urllib2.build_opener(cookies)
#循环取时间列表里面的时间,并获取相对应的微信支付的记录
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
 #将获取的数据分行,放入列表中
 lines = data.split("\n")
 f = file("./test.csv", "a")
 #将获取的数据按行写入CSV文件
 for i in range(len(lines)):
  if i>0 and i
   f.write(lines[i].replace("`",""))
  i += 1
 f.close()

总结

以上所述是小编给大家介绍的python 处理微信对账单数据的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python简单实现基于SSL的IRC bot实例
Jun 15 Python
Python升级导致yum、pip报错的解决方法
Sep 06 Python
python 读取修改pcap包的例子
Jul 23 Python
Django接收post前端返回的json格式数据代码实现
Jul 31 Python
Window10下python3.7 安装与卸载教程图解
Sep 30 Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
Aug 05 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 Python
Pytest之测试命名规则的使用
Apr 16 Python
python爬虫之爬取笔趣阁小说
Apr 22 Python
浅谈Python项目的服务器部署
Apr 25 Python
Python实现提取PDF简历信息并存入Excel
Apr 02 Python
Python利用神经网络解决非线性回归问题实例详解
Jul 19 #Python
python障碍式期权定价公式
Jul 19 #Python
python+numpy实现的基本矩阵操作示例
Jul 19 #Python
由面试题加深对Django的认识理解
Jul 19 #Python
基于Python函数和变量名解析
Jul 19 #Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 #Python
对Python生成器、装饰器、递归的使用详解
Jul 19 #Python
You might like
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
php中simplexml_load_string使用实例分享
2014/02/13 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
PHP实现懒加载的方法
2015/03/07 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
2016/03/01 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
python发布模块的步骤分享
2014/02/21 Python
浅析Python的Django框架中的Memcached
2015/07/23 Python
浅谈Python中列表生成式和生成器的区别
2015/08/03 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
django创建最简单HTML页面跳转方法
2019/08/16 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
英国一家集合了众多有才华设计师品牌的奢侈店:Wolf & Badger
2018/04/18 全球购物
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
一套C#面试题
2013/10/09 面试题
Linux内核产生并发的原因
2012/07/13 面试题
有关环保的标语
2014/06/13 职场文书
奥运会口号
2014/06/13 职场文书
长城导游词
2015/01/30 职场文书
大国崛起观后感
2015/06/02 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
mysql查询结果实现多列拼接查询
2022/04/03 MySQL
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏
宝塔更新Python及Flask项目的部署
2022/04/11 Python