import json
def convert_payload(input_payload, input_format, output_format):
"""
Converts API payloads between different formats.
Args:
input_payload (str): The input payload as a string (JSON).
input_format (str): The format of the input payload ('json', 'dict', 'list').
output_format (str): The desired format of the output payload ('json', 'dict', 'list').
Returns:
str: The converted payload as a JSON string, or None if conversion fails.
"""
try:
if input_format == 'json':
data = json.loads(input_payload) # Parse JSON string to Python object
elif input_format == 'dict':
data = json.loads(input_payload) # Parse JSON string to Python object
elif input_format == 'list':
data = json.loads(input_payload) # Parse JSON string to Python object
else:
print(f"Error: Invalid input format: {input_format}")
return None
if output_format == 'json':
return json.dumps(data, indent=4) # Convert Python object to JSON string
elif output_format == 'dict':
return json.dumps(data, indent=4) # Convert Python object to JSON string
elif output_format == 'list':
return json.dumps(data, indent=4) # Convert Python object to JSON string
else:
print(f"Error: Invalid output format: {output_format}")
return None
except json.JSONDecodeError as e:
print(f"Error decoding JSON: {e}")
return None
except Exception as e:
print(f"An error occurred: {e}")
return None
if __name__ == '__main__':
# Example Usage
input_json = '{"name": "John Doe", "age": 30, "city": "New York"}'
output_dict = convert_payload(input_json, 'json', 'dict')
if output_dict:
print("Converted to dictionary:\n", output_dict)
input_dict = '{"name": "Jane Doe", "age": 25, "city": "London"}'
output_json = convert_payload(input_dict, 'dict', 'json')
if output_json:
print("\nConverted to JSON:\n", output_json)
input_list = '[{"name": "Alice", "age": 28}, {"name": "Bob", "age": 35}]'
output_list = convert_payload(input_list, 'list', 'json')
if output_list:
print("\nConverted to JSON:\n", output_list)
Add your comment