Try95th

parse email data for so_q_?

Feb 27th, 2023
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.57 KB | None | 0 0
  1. def parseEmailData(txtInput):
  2.     emList, kCur = [{}], None
  3.     for l in txtInput.strip().splitlines():
  4.         lWords = l.split()
  5.         if set(l.strip())=={'='}: kCur, emList = None, emList+[{}]
  6.         if (kCur is None and not lWords) or set(l.strip())=={'='}: continue    
  7.         if lWords and lWords[0][-1:]==':':
  8.             kCur, lWords = lWords[0][:-1], lWords[1:]
  9.         emList[-1][kCur] = ' '.join([emList[-1].get(kCur,''),*lWords]).lstrip()
  10.     return emList
  11.  
  12. ############################# EXAMPLE
  13.  
  14. xTxt = '''
  15. Message-ID: <28344803.1075840320191.JavaMail.evans@thyme>
  16. Date: Thu, 31 Jan 2002 17:15:48 -0800 (PST)
  17. Subject: Gas Curves Validation
  18. Mime-Version: 1.0
  19. Content-Type: text/plain; charset=us-ascii
  20. Content-Transfer-Encoding: 7bit
  21. =====================
  22. Message-ID: <18785887.1075840319106.JavaMail.evans@thyme>
  23. Date: Wed, 6 Feb 2002 13:22:24 -0800 (PST)
  24. Subject: Photos
  25. Mime-Version: 1.0
  26. Content-Type: text/plain; charset=us-ascii
  27. Content-Transfer-Encoding: 7bit
  28. X-From: K. Bass <[email protected]>
  29. X-To: Bass, Eric </O=ENRON/OU=NA/CN=RECIPIENTS/CN=EBASS>
  30. X-cc:
  31. X-bcc:
  32. X-Folder: \ExMerge - Bass, Eric\Inbox
  33. X-Origin: BASS-E
  34. X-FileName: eric bass 6-25-02.PST
  35. '''
  36. parseEmailData(xTxt) ## returns
  37. [{'Message-ID': '<28344803.1075840320191.JavaMail.evans@thyme>',
  38.   'Date': 'Thu, 31 Jan 2002 17:15:48 -0800 (PST)',
  39.   'From': '[email protected]',
  40.   'Subject': 'Gas Curves Validation',
  41.   'Mime-Version': '1.0',
  42.   'Content-Type': 'text/plain; charset=us-ascii',
  43.   'Content-Transfer-Encoding': '7bit',
  44.  {'Message-ID': '<18785887.1075840319106.JavaMail.evans@thyme>',
  45.   'Date': 'Wed, 6 Feb 2002 13:22:24 -0800 (PST)',
  46.   'From': '[email protected]',
  47.   'To': '[email protected]',
  48.   'Subject': 'Photos',
  49.   'Mime-Version': '1.0',
  50.   'Content-Type': 'text/plain; charset=us-ascii',
  51.   'Content-Transfer-Encoding': '7bit',
  52.   'X-From': 'K. Bass <[email protected]>',
  53.   'X-To': 'Bass, Eric </O=ENRON/OU=NA/CN=RECIPIENTS/CN=EBASS>',
  54.   'X-cc': '',
  55.   'X-bcc': '',
  56.   'X-Folder': '\\ExMerge - Bass, Eric\\Inbox',
  57.   'X-Origin': 'BASS-E',
  58.   'X-FileName': 'eric bass 6-25-02.PST'}]
Advertisement
Add Comment
Please, Sign In to add comment