tomllib — Разбор файлов TOML

Added in version 3.11.

Источник: Lib/tomllib


Этот модуль предоставляет интерфейс для разбора TOML (Tom’s Obvious Minimal Language, https://toml.io). Этот модуль не поддерживает запись TOML.

См.также

Tomli-W package - это TOML-писатель, который может использоваться вместе с этим модулем, предоставляя API для записи, знакомый пользователям модулей стандартной библиотеки marshal и pickle.

См.также

TOML Kit package - это сохраняющая стиль библиотека TOML с возможностью чтения и записи. Это рекомендуемая замена данного модуля для редактирования уже существующих файлов TOML.

Этот модуль определяет следующие функции:

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

Чтение файла TOML. Первым аргументом должен быть читаемый и двоичный объект файла. Возвращает dict. Преобразование типов TOML в Python с помощью этого conversion table.

parse_float будет вызван со строкой каждого TOML float, который нужно декодировать. По умолчанию это эквивалентно float(num_str). Это может быть использовано для использования другого типа данных или парсера для TOML float (например, decimal.Decimal). Вызываемый элемент не должен возвращать dict или list, иначе будет вызван ValueError.

В случае недопустимого документа TOML будет выдано сообщение TOMLDecodeError.

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

Загрузите TOML из объекта str. Возвращает объект dict. Преобразуйте типы TOML в Python с помощью этого conversion table. Аргумент parse_float имеет то же значение, что и в load().

В случае недопустимого документа TOML будет выдано сообщение TOMLDecodeError.

Возможны следующие исключения:

exception tomllib.TOMLDecodeError

Подкласс ValueError.

Примеры

Разбор файла TOML:

import tomllib

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

Разбор строки TOML:

import tomllib

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

data = tomllib.loads(toml_str)

Таблица пересчета

TOML

Python

Документ TOML

диктант

строка

str

целое число

int

float

float (настраивается с помощью parse_float)

булево

bool

смещение дата-время

datetime.datetime (атрибут``tzinfo`` установлен на экземпляр datetime.timezone)

локальная дата-время

datetime.datetime (атрибут``tzinfo`` установлен на None)

местная дата

datetime.date

местное время

datetime.time

массив

список

таблица

диктант

встроенная таблица

диктант

массив таблиц

список диктов