Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import csv
- from io import StringIO # just for demo purposes
- from collections import defaultdict
- from collections import namedtuple
- from datetime import datetime
- data = """Name,Surname,Department,Start Date
- Bradley,Chandler,Accounting,2020-04-26
- Dean,Gilmore,Accounting,2018-01-10
- Lucius,Glass,Advertising,2019-01-13
- Cailin,Mills,Data Analysis,2018-07-27
- Audra,Cobb,Research and Development,2018-05-05
- Desiree,Delacruz,Data Analysis,2018-05-05
- Alfreda,Ryan,DevOps,2018-07-13
- Hamilton,Manning,Media Relations,2018-03-09
- Lyle,Schultz,Legal Department,2020-01-08"""
- dates = defaultdict(list)
- with StringIO(data) as records:
- reader = csv.reader(records)
- header = next(reader)[:-1]
- Person = namedtuple('Person', header)
- for record in reader:
- startdate = datetime.strptime(record[-1], '%Y-%m-%d')
- dates[startdate].append(Person(*record[:-1]))
- for date in sorted(dates):
- records = dates[date]
- print(f'Date: {date.strftime("%Y-%m-%d")}:')
- for record in records:
- print('\t', end="")
- for field in header:
- print(f'{getattr(record, field):15}', end= ' ')
- print()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement