tomllib — разбор файлов TOML
Добавлено в версии 3.11.
Исходный код: 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 согласно этой таблице преобразования.Для каждого значения с плавающей точкой TOML, которое нужно декодировать, будет вызван параметр parse_float, которому будет передана соответствующая строка. По умолчанию это эквивалентно
float(num_str). Это можно использовать, чтобы задать другой тип данных или анализатор для значений с плавающей точкой TOML (например,decimal.Decimal). Вызываемый объект не должен возвращатьdictилиlist, иначе будет вызвано исключениеValueError.Если документ TOML некорректен, будет вызвано исключение
TOMLDecodeError.
-
tomllib.loads(s, /, *, parse_float=float) -
Загрузить TOML из объекта
str. Возвращаетdict. Преобразует типы TOML в типы Python согласно этой таблице преобразования. Аргумент parse_float имеет то же значение, что и вload().Если документ TOML некорректен, будет вызвано исключение
TOMLDecodeError.
Доступны следующие исключения:
-
exception tomllib.TOMLDecodeError(msg, doc, pos) -
Подкласс
ValueErrorсо следующими дополнительными атрибутами:-
msg -
Не отформатированное сообщение об ошибке.
-
doc -
Разбираемый документ TOML.
-
pos -
Индекс в doc, на котором произошла ошибка разбора.
-
lineno -
Номер строки, соответствующей pos.
-
colno -
Номер столбца, соответствующего pos.
Изменено в версии 3.14: Добавлены параметры msg, doc и pos. Добавлены атрибуты
msg,doc,pos,linenoиcolno.Устарело с версии 3.14: Передача произвольных позиционных аргументов объявлена устаревшей.
-
Примеры
Разбор файла 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 | dict |
строка | str |
целое число | int |
число с плавающей точкой | float (настраивается с помощью parse_float) |
логическое значение | bool |
дата и время со смещением | datetime.datetime (атрибут |
локальные дата и время | datetime.datetime (атрибут |
локальная дата | datetime.date |
локальное время | datetime.time |
массив | list |
таблица | dict |
встроенная таблица | dict |
массив таблиц | список dict |
© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/library/tomllib.html