top of page

How to Convert XML to JSON File in Python

XML and JSON are two different ways to represent the data. Though both are used to structure and share data, they each have unique qualities that suit different needs. XML (eXtensible Markup Language) works like a language with tags that define elements and their connections. On the other hand, JSON (JavaScript Object Notation) keeps things simple by showing data as pairs of keys and values.

When comparing XML and JSON, the choice revolves around finding a balance between detail and flexibility. XML can be quite detailed due to its tag-based setup, which makes it easy for people to read and understand. In contrast, JSON's simpler format makes it easier to read and process, but it might not handle complex data structures as well.

In cases where it's important for data to work smoothly across different platforms and where making data manipulation easy is key, there's a need to convert XML to JSON. This shift makes it seamless for modern apps and APIs, which often prefer JSON. Additionally, in programming languages like Python, working with JSON is more straightforward because it's built into the language and has a simpler structure.

Therefore, this tutorial aims to offer you a comprehensive, step-by-step guide to convert XML to JSON files using Python.

Convert XML to JSON File in Python

To convert XML to JSON in Python, you will need the following:

  • Python 3: The latest version of the Python programming language.

  • The xmltodict module: A Python library that simplifies the conversion of XML data into a dictionary-like format.

  • The json module: A core Python module for working with JSON data.

You can easily install the xmltodict module using the following command:

pip install xmltodict 

It's important to note that the json module comes pre-installed with Python 3, eliminating the need for any additional installation steps.

Step-by-Step Conversion:

To convert XML to JSON in Python, is a structured process that involves several key steps:

  1. Install Required Modules: First, ensure you have the necessary tools by installing the xmltodict module using the provided pip command.

  2. Import Modules: Import the xmltodict and json modules into your Python script. These modules will provide the functionality needed for the conversion process.

  3. Read XML Data: Open the XML file in read mode and read its contents into a variable. This step prepares the XML data for further processing.

  4. Convert to Dictionary: Utilize the xmltodict.parse() method to convert the XML data into a dictionary-like structure. This method parses the XML file, generating a nested dictionary that mirrors the XML's hierarchical structure.

  5. Transform to JSON: Employ the json.dumps() method to transform the dictionary into a JSON-formatted string. This function serializes the dictionary, producing a string that adheres to the JSON syntax.

  6. Write to JSON File: Write the generated JSON string to a new or existing JSON file. This completes the conversion process, resulting in a JSON file containing the converted data.


Consider the following example that demonstrates the conversion of an XML file named data.xml to a JSON file named data.json:

import xmltodict 
import json  

# Read XML Data
with open('data.xml', 'r') as f:     
    xml_data =  
# Convert XML to Dictionary
data = xmltodict.parse(xml_data)  

# Convert Dictionary to JSON
json_data = json.dumps(data)  

# Write JSON Data to File
with open('data.json', 'w') as f:     

In this example, the script reads the contents of data.xml and converts it into a dictionary using xmltodict.parse(). The resulting dictionary is then transformed into a JSON-formatted string using json.dumps(). Finally, the JSON string is written to a new file named data.json.

Understanding the Process:

To convert XML to JSON Data, involves two crucial methods:

  • The xmltodict.parse() method employs a recursive algorithm to traverse the XML structure. Starting at the root element, it proceeds to recursively parse child elements, constructing a nested dictionary that mirrors the XML's hierarchy.

  • The json.dumps() method also employs a recursive approach to convert the nested dictionary into a properly formatted JSON string. This algorithm starts at the dictionary's root element and recursively processes child elements while ensuring the JSON output maintains human-readable formatting through indentation.


Converting XML to JSON Data in Python entails a systematic process that bridges the gap between two popular data representation formats. By following the outlined steps and utilizing the xmltodict and json modules, you can seamlessly convert XML to JSON format that aligns with the requirements of modern applications, APIs, and data-driven processes. This conversion not only enhances cross-platform compatibility but also simplifies data manipulation in scenarios where JSON's lightweight and readable structure shines.

bottom of page