# `tomllib` — Parse TOML files

Código fuente: Lib/tomllib

This module provides an interface for parsing TOML 1.1.0 (Tom’s Obvious Minimal Language, https://toml.io). This module does not support writing TOML.

Added in version 3.11: The module was added with support for TOML 1.0.0.

Distinto en la versión 3.15: Added TOML 1.1.0 support. See the What’s New for details.

Advertencia

Be cautious when parsing data from untrusted sources. A malicious TOML string may cause the decoder to consume considerable CPU and memory resources. Limiting the size of data to be parsed is recommended.

Ver también

The Tomli-W package is a TOML writer that can be used in conjunction with this module, providing a write API familiar to users of the standard library `marshal` and `pickle` modules.

Ver también

The TOML Kit package is a style-preserving TOML library with both read and write capability. It is a recommended replacement for this module for editing already existing TOML files.

Este módulo define las siguientes funciones:

tomllib.load(fp, /, *, parse_float=float)

  Lee un archivo TOML. El primer argumento debe ser un objeto de archivo legible y binario. Retorna un `dict`. Convierte los tipos TOML a Python utilizando esta tabla de conversión.

  parse_float se llamará con la cadena de cada TOML flotante que se decodificará. Por defecto, esto es equivalente a `float(num_str)`. Esto se puede utilizar para usar otro tipo de datos o analizador para flotantes TOML (por ejemplo, `decimal.Decimal`). La llamada no debe devolver un `dict` o un `list`, de lo contrario se lanza un `ValueError`.

  Un `TOMLDecodeError` se levantará en un documento TOML inválido.

tomllib.loads(s, /, *, parse_float=float)

  Carga TOML de un objeto `str`. Retorna un `dict`. Convierte los tipos TOML a Python utilizando esta tabla de conversión. El argumento parse_float tiene el mismo significado que en `load()`.

  Un `TOMLDecodeError` se levantará en un documento TOML inválido.

Las siguientes excepciones están disponibles:

exception tomllib.TOMLDecodeError(msg, doc, pos)

  Subclass of `ValueError` with the following additional attributes:

  msg

    The unformatted error message.

  doc

    The TOML document being parsed.

  pos

    The index of doc where parsing failed.

  lineno

    The line corresponding to pos.

  colno

    The column corresponding to pos.

  Distinto en la versión 3.14: Added the msg, doc and pos parameters. Added the `msg`, `doc`, `pos`, `lineno` and `colno` attributes.

  Obsoleto desde la versión 3.14: Passing free-form positional arguments is deprecated.

## Ejemplos

Analiza un TOML file:

    import tomllib

    with open("pyproject.toml", "rb") as f:
        data = tomllib.load(f)

Analiza un TOML string:

    import tomllib

    toml_str = """
    python-version = "3.11.0"
    python-implementation = "CPython"
    """

    data = tomllib.loads(toml_str)

## Tabla de conversión

TOML | Python
--- | ---
TOML document | dict
cadena | str
integer | int
flotante | flotante (configurable con parse_float)
boolean | bool
offset date-time | datetime.datetime (atributo `tzinfo` establecido en una instancia de `datetime.timezone`)
local date-time | datetime.datetime (atributo `tzinfo` establecido en `None`)
local date | datetime.date
local time | datetime.time
array | list
tabla | dict
inline table | dict
array of tables | list of dicts