Python Automatic JSON and XML Conversions
Modern applications frequently exchange data using JSON and XML formats. Python provides powerful built-in libraries like json and xml.etree.ElementTree to automatically convert data between Python objects and structured formats.
This guide explains serialization (Python → JSON/XML) and deserialization (JSON/XML → Python) with complete working programs.
1. JSON Conversion in Python
JSON (JavaScript Object Notation) is a lightweight data format used in APIs and web applications. Python's built-in json module makes conversion simple.
Convert Python Object to JSON (Serialization)
import json
# Python dictionary
student = {
"name": "Alice",
"age": 21,
"course": "Computer Science"
}
# Convert to JSON string
json_data = json.dumps(student, indent=4)
print(json_data)
Convert JSON to Python Object (Deserialization)
import json
json_string = '{"name": "Bob", "age": 25}'
# Convert JSON string to Python dictionary
python_obj = json.loads(json_string)
print(python_obj)
print(type(python_obj))
2. XML Conversion in Python
XML (Extensible Markup Language) is commonly used in enterprise systems. Python provides xml.etree.ElementTree for parsing and generating XML data.
Create XML from Python Data
import xml.etree.ElementTree as ET
student = ET.Element("student")
name = ET.SubElement(student, "name")
name.text = "Alice"
age = ET.SubElement(student, "age")
age.text = "21"
# Convert to string
xml_data = ET.tostring(student, encoding='unicode')
print(xml_data)
Parse XML to Python Object
import xml.etree.ElementTree as ET
xml_string = """
<student>
<name>Bob</name>
<age>25</age>
</student>
"""
root = ET.fromstring(xml_string)
print(root.find("name").text)
print(root.find("age").text)
3. Convert JSON to XML and XML to JSON
Although Python does not provide direct built-in conversion between JSON and XML, we can manually convert structures using dictionaries.
JSON to XML Example
import json
import xml.etree.ElementTree as ET
json_data = '{"name": "Charlie", "age": 30}'
data = json.loads(json_data)
root = ET.Element("person")
for key, value in data.items():
child = ET.SubElement(root, key)
child.text = str(value)
xml_output = ET.tostring(root, encoding='unicode')
print(xml_output)
XML to JSON Example
import json
import xml.etree.ElementTree as ET
xml_string = """
<person>
<name>David</name>
<age>28</age>
</person>
"""
root = ET.fromstring(xml_string)
data = {child.tag: child.text for child in root}
json_output = json.dumps(data, indent=4)
print(json_output)
4. Complete Program: JSON ↔ XML Conversion
import json
import xml.etree.ElementTree as ET
# Original Python dictionary
person = {
"name": "Emma",
"age": 22,
"city": "New York"
}
# Convert Python dict to JSON
json_data = json.dumps(person, indent=4)
print("JSON Output:")
print(json_data)
# Convert JSON back to dict
python_obj = json.loads(json_data)
# Convert dict to XML
root = ET.Element("person")
for key, value in python_obj.items():
child = ET.SubElement(root, key)
child.text = str(value)
xml_data = ET.tostring(root, encoding='unicode')
print("\nXML Output:")
print(xml_data)
Conclusion
Python makes JSON and XML conversion simple and efficient using built-in modules. Use json for web APIs and lightweight data exchange, and xml.etree.ElementTree for structured enterprise data. Mastering both ensures strong backend and API development skills.
Codecrown