Документация Python неофициальный перевод
Содержание страницы

tomllib – Разбор TOML-файловtomllib – Parse TOML files

Добавлено в версии 3.12.

Исходный код: Lib/tomllib


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

Предупреждение

Соблюдайте осторожность при разборе данных из ненадёжных источников. Вредоносная строка TOML может заставить декодер потреблять значительные ресурсы ЦП и памяти. Рекомендуется ограничивать размер разбираемых данных.

См. также

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

См. также

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

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

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

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

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

Исключение TOMLDecodeError будет возбуждено при недопустимом документе TOML.

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

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

Исключение TOMLDecodeError будет возбуждено при недопустимом документе TOML.

Доступны следующие исключения:

exception tomllib.TOMLDecodeError

Подкласс ValueError.

ПримерыExamples

Разбор 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)

Таблица соответствияConversion Table

TOML

Python

Документ TOML

dict

строка

str

целое число

int

float

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

булевый

bool

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

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

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

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

локальная дата

datetime.date

локальное время

datetime.time

массив

list

таблица

dict

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

dict

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

список словарей