1. import json
  2. def convert_payload(input_payload, input_format, output_format):
  3. """
  4. Converts API payloads between different formats.
  5. Args:
  6. input_payload (str): The input payload as a string (JSON).
  7. input_format (str): The format of the input payload ('json', 'dict', 'list').
  8. output_format (str): The desired format of the output payload ('json', 'dict', 'list').
  9. Returns:
  10. str: The converted payload as a JSON string, or None if conversion fails.
  11. """
  12. try:
  13. if input_format == 'json':
  14. data = json.loads(input_payload) # Parse JSON string to Python object
  15. elif input_format == 'dict':
  16. data = json.loads(input_payload) # Parse JSON string to Python object
  17. elif input_format == 'list':
  18. data = json.loads(input_payload) # Parse JSON string to Python object
  19. else:
  20. print(f"Error: Invalid input format: {input_format}")
  21. return None
  22. if output_format == 'json':
  23. return json.dumps(data, indent=4) # Convert Python object to JSON string
  24. elif output_format == 'dict':
  25. return json.dumps(data, indent=4) # Convert Python object to JSON string
  26. elif output_format == 'list':
  27. return json.dumps(data, indent=4) # Convert Python object to JSON string
  28. else:
  29. print(f"Error: Invalid output format: {output_format}")
  30. return None
  31. except json.JSONDecodeError as e:
  32. print(f"Error decoding JSON: {e}")
  33. return None
  34. except Exception as e:
  35. print(f"An error occurred: {e}")
  36. return None
  37. if __name__ == '__main__':
  38. # Example Usage
  39. input_json = '{"name": "John Doe", "age": 30, "city": "New York"}'
  40. output_dict = convert_payload(input_json, 'json', 'dict')
  41. if output_dict:
  42. print("Converted to dictionary:\n", output_dict)
  43. input_dict = '{"name": "Jane Doe", "age": 25, "city": "London"}'
  44. output_json = convert_payload(input_dict, 'dict', 'json')
  45. if output_json:
  46. print("\nConverted to JSON:\n", output_json)
  47. input_list = '[{"name": "Alice", "age": 28}, {"name": "Bob", "age": 35}]'
  48. output_list = convert_payload(input_list, 'list', 'json')
  49. if output_list:
  50. print("\nConverted to JSON:\n", output_list)

Add your comment