fork download
  1. import re
  2.  
  3. page_text_str = " 1 NA BEVERAGE 1100 ICED TEA 14.00 3.00 42.00 3.50 0.00 42.00 0.00 0.52 47.09"
  4.  
  5. sale_line_re = re.compile('^\s*(\d+)\s*((?:[A-Za-z]+\s+)+)?(\d+)\s+(.+?)\s+(\d+.\d+)\s+(\d+.\d+)\s+(\d+.\d+)\s+(\d+.\d+)\s+(\d+.\d+)\s+(\d+.\d+)\s+(\d+.\d+)\s+(\d+.\d+)\s+(\d+.\d+)$')
  6. grouped_data = []
  7.  
  8. for line in page_text_str.split('\n'):
  9. print(line)
  10. match = sale_line_re.match(line)
  11. if match:
  12. groups = match.groups()
  13. item = {
  14. "item_rank": groups[0],
  15. "item_category": groups[1],
  16. "item_number": groups[2],
  17. "item_name": groups[3],
  18. "number_sold": groups[4],
  19. "price_sold": groups[5],
  20. "amount": groups[6],
  21. "tax": groups[7],
  22. "cost": groups[8],
  23. "profit": groups[9],
  24. "food_cost": groups[10],
  25. "precent_sales": groups[11],
  26. "cat_sales": groups[12]
  27. }
  28. grouped_data.append(item)
  29.  
  30.  
  31. for sale in grouped_data:
  32. print(sale)
Success #stdin #stdout 0.05s 9588KB
stdin
Standard input is empty
stdout
   1 NA BEVERAGE 1100 ICED TEA 14.00 3.00 42.00 3.50 0.00 42.00 0.00 0.52 47.09
{'item_rank': '1', 'item_category': 'NA BEVERAGE ', 'item_number': '1100', 'item_name': 'ICED TEA', 'number_sold': '14.00', 'price_sold': '3.00', 'amount': '42.00', 'tax': '3.50', 'cost': '0.00', 'profit': '42.00', 'food_cost': '0.00', 'precent_sales': '0.52', 'cat_sales': '47.09'}