Advertisement
gruntfutuk

example datetime csv sorted

Feb 19th, 2022
809
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.14 KB | None | 0 0
  1. import csv
  2. from io import StringIO  # just for demo purposes
  3. from collections import defaultdict
  4. from collections import namedtuple
  5. from datetime import datetime
  6.  
  7. data = """Name,Surname,Department,Start Date
  8. Bradley,Chandler,Accounting,2020-04-26
  9. Dean,Gilmore,Accounting,2018-01-10
  10. Lucius,Glass,Advertising,2019-01-13
  11. Cailin,Mills,Data Analysis,2018-07-27
  12. Audra,Cobb,Research and Development,2018-05-05
  13. Desiree,Delacruz,Data Analysis,2018-05-05
  14. Alfreda,Ryan,DevOps,2018-07-13
  15. Hamilton,Manning,Media Relations,2018-03-09
  16. Lyle,Schultz,Legal Department,2020-01-08"""
  17.  
  18. dates = defaultdict(list)
  19.  
  20. with StringIO(data) as records:
  21.     reader = csv.reader(records)
  22.     header = next(reader)[:-1]
  23.     Person = namedtuple('Person', header)
  24.     for record in reader:
  25.         startdate = datetime.strptime(record[-1], '%Y-%m-%d')
  26.         dates[startdate].append(Person(*record[:-1]))
  27. for date in sorted(dates):
  28.     records = dates[date]
  29.     print(f'Date: {date.strftime("%Y-%m-%d")}:')
  30.     for record in records:
  31.         print('\t', end="")
  32.         for field in header:
  33.             print(f'{getattr(record, field):15}', end= ' ')
  34.         print()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement