用python将要的数据筛选出来
发布网友
发布时间:2022-05-12 04:22
我来回答
共2个回答
热心网友
时间:2023-11-12 07:51
#!/usr/bin/python
# encoding: utf-8
# filename: .qa.py
depno = {'01':'市中支行',
'02':'槐荫支行',
}#机构代码:机构名称
staffnoanddepno= {'0001':'01',
'0002':'01',
'0003':'02'
}#员工代码:机构代码
data_content = """
2010-03-20 17:55:08|0002|4202|0
2010-03-20 17:55:32|0003|5204|755008
2010-03-20 18:08:57|0001|5204|680464
2010-03-20 18:10:07|0002|4202|0
"""
import re
patt = re.compile(r"""
(?P<dt>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2})
\|
(?P<staffkey>\d*)
\|
(?P<item>\d*)
\|
(?P<value>\d*)
""", re.I|re.U|re.X)
result = {}
for m in filter(None, map(patt.match, data_content.splitlines())):
d = m.groupdict()
dep_key = staffnoanddepno.get(d["staffkey"])
result.setdefault(dep_key, {})\
.setdefault(d["staffkey"], [])\
.append((d["dt"], d["item"], d["value"]))
for dep_key in sorted(result):
print dep_key, depno.get(dep_key)
for staffkey in sorted(result[dep_key]):
print "\t", staffkey
for dt, item, value in result[dep_key][staffkey]:
print "\t"*2, dt, item, value
#~ >python -u ".qa.py"
#~ 01 市中支行
#~ 0001
#~ 2010-03-20 18:08:57 5204 680464
#~ 0002
#~ 2010-03-20 17:55:08 4202 0
#~ 2010-03-20 18:10:07 4202 0
#~ 02 槐荫支行
#~ 0003
#~ 2010-03-20 17:55:32 5204 755008
#~ >Exit code: 0 Time: 0.064
热心网友
时间:2023-11-12 07:51
给个具体例子行不?