martinblech/xmltodict

Python module that makes working with XML feel like you are working with JSON

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 2 minutes ago
Added to GitGenius on September 11th, 2026
Created on April 17th, 2012
Open Issues & Pull Requests: 5 (+0)
GitHub issues: Enabled
Number of forks: 475
Total Stargazers: 5,756 (+0)
Total Subscribers: 99 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 110.8 days
Mean response time: 472.9 days
90th percentile: 1765.6 days
Tracked items: 101

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 12% of issues opened in the past year have been closed. Three people close 100% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 1
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 88 days
Stale 30+ days: 1
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (3)
  • question (3)
  • invalid (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

xmltodict is a Python module that makes working with XML feel like you are working with JSON.

The module solves the problem of XML's verbosity and structural complexity by converting it into Python dictionaries that follow JSON-like conventions. It uses the fast Expat parser under the hood and provides straightforward bidirectional conversion: XML documents parse into nested dictionaries with configurable key names for attributes and text content, while dictionaries can be unparsed back into XML. The tool handles namespace processing optionally, collapsing or skipping namespaces as needed, and includes a streaming mode designed for processing large XML files with minimal memory overhead.

Developers working with XML in Python should choose this tool if they prefer dictionary-based access patterns over DOM or ElementTree APIs. It suits projects that need to consume or generate XML but want the simplicity of JSON-like data structures, particularly when handling large files where streaming mode's low memory footprint matters. The module is fast enough for command-line piping and supports caching parsed results to avoid reparsing. Roundtripping between XML and dictionaries works with the standard configuration, though some advanced features like the expand_iter keyword argument for nested lists will break this bidirectional conversion.

Issues and pull requests in the project often wait weeks or longer for a first response. Work in the issue tracker is dominated by enhancement requests and user questions rather than bug reports.