Statistical Data and Metadata eXchange (SDMX) in Python#

sdmx is a Python package that implements SDMX 2.1 (ISO 17369:2013) and 3.0, which are standards and formats for exchange of statistical data and metadata that are developed and used by national statistical agencies, central banks, and international organisations.

sdmx can be used to:

  • explore the data available from data providers such as the World Bank, International Monetary Fund, Eurostat, OECD, and United Nations;

  • read and write data and metadata in SDMX formats including SDMX-ML (XML) and SDMX-JSON, either:

    • from local files, or

    • retrieved from SDMX web services, with query validation and caching;

  • convert data and metadata into pandas objects, for use with the analysis, plotting, and other tools in the Python data science ecosystem;

  • apply the SDMX Information Model to your own data;

…and much more.

Get started#

The SDMX standards are designed to be flexible enough to accommodate almost any data. To do this, they include a large number of abstract concepts for describing data, metadata, and their relationships. These are collectively called the SDMX Information Model (IM).

This documentation does not repeat full descriptions of SDMX, the IM, or SDMX web services; it focuses on the Python implementation in sdmx itself. Detailed knowledge of the IM is not needed to use sdmx; see a usage example in only 10 lines of code or a longer, narrative walkthrough.

To learn about SDMX in more detail, use the list of resources and references, or read the API documentation and implementation notes for the sdmx.model and sdmx.message modules that fully implement the IM in Python.

sdmx user guide#

Contributing and getting help#

  • Ask usage questions (“How do I?”) on Stack Overflow using the tag [python-sdmx].

  • Report bugs, suggest features, or view the source code on GitHub.

  • The older sdmx-python Google Group may have answers for some questions.