1. import json
  2. from datetime import datetime
  3. def serialize_api_response(response_data):
  4. """
  5. Serializes API response data for maintenance tasks.
  6. Handles basic data types and timestamps.
  7. """
  8. serialized_data = {}
  9. # Basic data types
  10. for key, value in response_data.items():
  11. if isinstance(value, (int, float, str, bool, type(None))):
  12. serialized_data[key] = value
  13. elif isinstance(value, list):
  14. serialized_data[key] = value # Keep lists as is
  15. elif isinstance(value, dict):
  16. serialized_data[key] = serialize_api_response(value) # Recursive call for nested dicts
  17. else:
  18. serialized_data[key] = str(value) # Convert unknown types to string
  19. # Add timestamp
  20. serialized_data['timestamp'] = datetime.utcnow().isoformat()
  21. return serialized_data
  22. if __name__ == '__main__':
  23. # Example usage
  24. sample_response = {
  25. "status": "success",
  26. "data": {
  27. "user_id": 123,
  28. "username": "john.doe",
  29. "last_login": "2023-10-27T10:00:00Z",
  30. "settings": {
  31. "theme": "dark",
  32. "notifications": True
  33. }
  34. },
  35. "errors": []
  36. }
  37. serialized_response = serialize_api_response(sample_response)
  38. print(json.dumps(serialized_response, indent=4))

Add your comment