数据表格加input日期_RPA银行销户数据处理难点解决

a4e3227e226a876884b0b5ced81f950a.png

需求

需要每天获取 txt 格式的销户数据,解析并按网点号生成 excel 表格。

销户数据内容如下:

网点号 账户 销户日期

0**06 750********253334 2019-07-16

0**15 751********105418 2019-07-16

0**05 750********119448 2019-07-16

0**06 750********253334 2019-07-16

0**15 751********105418 2019-07-16

0**05 750********119448 2019-07-16

0**06 750********253334 2019-07-16

0**15 751********105418 2019-07-16

0**05 750********119448 2019-07-16

末尾可能有数量不一定的几个空行。对于相同网点号的数据,都填到同一个以网点号命名的 excel 表中。

思路

依次读取每一行,将网点号作为 defaultdict 字典的键,账户及销户日期作为一个列表并插入对应键的值中;然后遍历这个字典,将每个键下的每组列表都连同这个键一起存放在一个列表中,最终实现的效果如下:

[[['750********253334', '2019-07-16', '0**06'], ['750********253334', '2019-07-16', '0**06'], ['750********253334', '2019-07-16', '0**06']], [['751********105418', '2019-07-16', '0**15'], ['751********105418', '2019-07-16', '0**15'], ['751********105418', '2019-07-16', '0**15']], [['750********119448', '2019-07-16', '0**05'], ['750********119448', '2019-07-16', '0**05'], ['750********119448', '2019-07-16', '0**05']]]

算法

完整代码清单:

import fileinputfrom collections import defaultdictimport itertoolsimport pprintdef parse_txt(path): # 初始化一个值为列表类型的defauldict dic = defaultdict(list) # 使用fileinput进行文件行的高效率迭代 for line in fileinput.input(path): try: li = line.split() # 不加if判断直接进行插值操作,进一步缩短运行时间 # 这种情况下会对第一行的中文也进行处理,后面需要剔除 dic[li[0]].append([li[1], li[2]]) # 碰到空行时li的结果为空列表,捕获到索引错误的异常时就退出for循环 except IndexError: break # 剔除操作 del dic['网点号'] # 以键值对形式返回字典 return dic.items()def change_defaultdict(items): need_li = [] for item in items: # 一行超人 need_li.append([list(itertools.chain(item[1][i], [item[0]])) for i in range(len(item[1]))]) # 这样写也行:need_li.append([item[1][i]+[item[0]] for i in range(len(item[1]))]) return need_liif __name__ == "__main__": # 使用pprint进行格式化打印 pprint.pprint(change_defaultdict(parse_txt('0716销户清单.txt')))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值