Skip to main content

How to convert a dictionary to XML in Python

How to convert a dictionary to XML in Python.

Here's a step-by-step tutorial on how to convert a dictionary to XML in Python:

Step 1: Import the required libraries First, you need to import the required libraries to work with XML in Python. In this tutorial, we will use the xml.etree.ElementTree module.

import xml.etree.ElementTree as ET

Step 2: Create a dictionary Next, create a dictionary that you want to convert to XML. For demonstration purposes, let's consider the following dictionary:

data = {
"student": {
"name": "John Doe",
"age": 20,
"grade": "A"
}
}

Step 3: Convert the dictionary to XML To convert the dictionary to XML, you need to traverse the dictionary and create XML elements accordingly. Here's a function that recursively converts a dictionary to XML:

def dict_to_xml(dictionary, root):
for key, value in dictionary.items():
if isinstance(value, dict):
element = ET.SubElement(root, key)
dict_to_xml(value, element)
else:
element = ET.SubElement(root, key)
element.text = str(value)

In the above function, we check if the value is a dictionary. If it is, we create a new XML element with the key and call the dict_to_xml function recursively. If the value is not a dictionary, we create a new XML element and set the text value.

Step 4: Create the root element Before converting the dictionary to XML, we need to create a root element. This is required because XML documents always have a single root element. In this example, let's create a root element called "data":

root = ET.Element("data")

Step 5: Convert the dictionary to XML and save it to a file Now, we can convert the dictionary to XML using the dict_to_xml function and save it to a file. In this example, let's save it to a file called "output.xml":

dict_to_xml(data, root)

tree = ET.ElementTree(root)
tree.write("output.xml")

Step 6: Verify the XML output To verify the XML output, you can open the "output.xml" file in a text editor or use the ElementTree module to parse and print the XML content:

tree = ET.parse("output.xml")
root = tree.getroot()

xml_content = ET.tostring(root, encoding="unicode")
print(xml_content)

That's it! You have successfully converted a dictionary to XML in Python.