fork download
  1. #!/usr/bin/env python3
  2.  
  3. # Import Required Libraries
  4. import sys
  5. import json
  6. import csv
  7.  
  8. # Read the Header
  9. header = next(sys.stdin).strip().split(',')
  10. header = [h.strip() for h in header]
  11.  
  12. # Process Each Line
  13. for line in sys.stdin:
  14.  
  15. line = line.strip()
  16.  
  17. # Skip Empty Lines
  18. if not line:
  19. continue
  20.  
  21. # Read CSV Values
  22. try:
  23. reader = csv.reader([line])
  24. values = next(reader)
  25.  
  26. except Exception:
  27. continue
  28.  
  29. # Create JSON Document
  30. document = {}
  31.  
  32. for i, field in enumerate(header):
  33.  
  34. try:
  35. # Convert Numeric Fields
  36. if field in ['quantity', 'price']:
  37. document[field] = float(values[i])
  38.  
  39. else:
  40. document[field] = values[i]
  41.  
  42. except (ValueError, IndexError):
  43. continue
  44.  
  45. # Convert Document into JSON
  46. print(f"null\t{json.dumps(document)}")
Success #stdin #stdout 0.11s 15608KB
stdin
transaction_id,user_id,product_id,quantity,price,timestamp
1001,user_A,prod_X,2,50.00,2023-01-01T12:00:00Z
1002,user_B,prod_Y,1,120.50,2023-01-01T12:05:00Z
1003,user_C,prod_Z,3,75.00,2023-01-01T12:10:00Z
1004,user_A,prod_Y,2,120.50,2023-01-01T12:15:00Z
1005,user_B,prod_X,1,50.00,2023-01-01T12:20:00Z
stdout
null	{"transaction_id": "1001", "user_id": "user_A", "product_id": "prod_X", "quantity": 2.0, "price": 50.0, "timestamp": "2023-01-01T12:00:00Z"}
null	{"transaction_id": "1002", "user_id": "user_B", "product_id": "prod_Y", "quantity": 1.0, "price": 120.5, "timestamp": "2023-01-01T12:05:00Z"}
null	{"transaction_id": "1003", "user_id": "user_C", "product_id": "prod_Z", "quantity": 3.0, "price": 75.0, "timestamp": "2023-01-01T12:10:00Z"}
null	{"transaction_id": "1004", "user_id": "user_A", "product_id": "prod_Y", "quantity": 2.0, "price": 120.5, "timestamp": "2023-01-01T12:15:00Z"}
null	{"transaction_id": "1005", "user_id": "user_B", "product_id": "prod_X", "quantity": 1.0, "price": 50.0, "timestamp": "2023-01-01T12:20:00Z"}