fork(1) download
  1. import sys
  2. import re
  3. import ast
  4.  
  5. def validateBooks():
  6. records = []
  7.  
  8. for line in sys.stdin:
  9. data = ast.literal_eval(line.strip())
  10.  
  11. book_id = data.get('book-id')
  12. if not re.match(r'^B\d{4}$',book_id):
  13. book_id = "Invalid Book ID"
  14.  
  15. title = data.get('title').strip()
  16. if title == "":
  17. title = "Unknown"
  18. else:
  19. title = title.title()
  20.  
  21. try:
  22. price = float(data.get('price'))
  23. if price <= 0:
  24. price = 0.0
  25. except:
  26. price = 0.0
  27.  
  28. # records.append({
  29. # 'book-id':book_id,
  30. # 'title':title,
  31. # 'price':price
  32.  
  33. # })
  34. records.append((book_id,title,price))
  35. return records
  36. result = (validateBooks())
  37. for arr in result:
  38. print(arr[0], arr[1], arr[2])
Success #stdin #stdout 0.02s 7768KB
stdin
{'book-id': 'B1234', 'title': 'lord of the rings', 'price': '-50'}
{'book-id': 'B5678', 'title': 'harry potter', 'price': '450'}
{'book-id': 'B12', 'title': ' the alchemist ', 'price': '300'}
{'book-id': 'X9999', 'title': 'rich dad poor dad', 'price': '250'}
{'book-id': 'B4321', 'title': '', 'price': '150'}
{'book-id': 'B8765', 'title': 'atomic habits', 'price': '-10'}
{'book-id': 'B1111', 'title': ' think and grow rich ', 'price': '0'}
{'book-id': 'B2222', 'title': 'deep work', 'price': '500'}
{'book-id': 'B333', 'title': 'clean code', 'price': '350'}
{'book-id': 'B4444', 'title': ' python programming ', 'price': 'abc'}
stdout
('B1234', 'Lord Of The Rings', 0.0)
('B5678', 'Harry Potter', 450.0)
('Invalid Book ID', 'The Alchemist', 300.0)
('Invalid Book ID', 'Rich Dad Poor Dad', 250.0)
('B4321', 'Unknown', 150.0)
('B8765', 'Atomic Habits', 0.0)
('B1111', 'Think And Grow Rich', 0.0)
('B2222', 'Deep Work', 500.0)
('Invalid Book ID', 'Clean Code', 350.0)
('B4444', 'Python Programming', 0.0)