tomllib.md
1> **Источник:** https://python-all.ru/3.11/library/tomllib.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# [`tomllib`](https://python-all.ru/3.11/library/tomllib.html#module-tomllib) – Разбор TOML-файлов89Новое в версии 3.11.1011**Исходный код:** [Lib/tomllib](https://python-all.ru/3.11/library/tomllib.html)1213---1415Этот модуль предоставляет интерфейс для парсинга TOML (Tom’s Obvious Minimal Language, [https://toml.io](https://python-all.ru/3.11/library/tomllib.html)). Этот модуль не поддерживает запись TOML.1617> **См. также**18>19> Пакет [Tomli-W](https://python-all.ru/3.11/library/tomllib.html) является средством записи TOML, которое можно использовать вместе с этим модулем; оно предоставляет API записи, знакомый пользователям модулей [`marshal`](https://python-all.ru/3.11/library/marshal.html#module-marshal) и [`pickle`](https://python-all.ru/3.11/library/pickle.html#module-pickle) стандартной библиотеки.2021> **См. также**22>23> Пакет [TOML Kit](https://python-all.ru/3.11/library/tomllib.html) – это библиотека TOML, сохраняющая стиль, с возможностью как чтения, так и записи. Он является рекомендуемой заменой этого модуля для редактирования уже существующих TOML-файлов.2425Этот модуль определяет следующие функции:2627#### `tomllib.load(fp, /, *, parse_float=float)`2829Читает TOML-файл. Первым аргументом должен быть читаемый двоичный файловый объект. Возвращает [`dict`](https://python-all.ru/3.11/library/stdtypes.html#dict). Преобразует типы TOML в Python согласно этой [таблице соответствия](https://python-all.ru/3.11/library/tomllib.html#toml-to-py-table).3031Функция *parse\_float* будет вызвана для строки каждого разбираемого значения TOML с плавающей запятой. По умолчанию она эквивалентна `float(num_str)`. Это позволяет использовать другой тип данных или анализатор для чисел с плавающей запятой TOML (например, [`decimal.Decimal`](https://python-all.ru/3.11/library/decimal.html#decimal.Decimal)). Вызываемый объект не должен возвращать [`dict`](https://python-all.ru/3.11/library/stdtypes.html#dict) или [`list`](https://python-all.ru/3.11/library/stdtypes.html#list), иначе будет возбуждено исключение [`ValueError`](https://python-all.ru/3.11/library/exceptions.html#ValueError).3233Исключение [`TOMLDecodeError`](https://python-all.ru/3.11/library/tomllib.html#tomllib.TOMLDecodeError) будет возбуждено при недопустимом документе TOML.3435#### `tomllib.loads(s, /, *, parse_float=float)`3637Загружает TOML из объекта [`str`](https://python-all.ru/3.11/library/stdtypes.html#str). Возвращает [`dict`](https://python-all.ru/3.11/library/stdtypes.html#dict). Преобразует типы TOML в Python согласно этой [таблице соответствия](https://python-all.ru/3.11/library/tomllib.html#toml-to-py-table). Аргумент *parse\_float* имеет то же значение, что и в [`load()`](https://python-all.ru/3.11/library/tomllib.html#tomllib.load).3839Исключение [`TOMLDecodeError`](https://python-all.ru/3.11/library/tomllib.html#tomllib.TOMLDecodeError) будет возбуждено при недопустимом документе TOML.4041Доступны следующие исключения:4243#### `exception tomllib.TOMLDecodeError`4445Подкласс [`ValueError`](https://python-all.ru/3.11/library/exceptions.html#ValueError).4647## Примеры4849Разбор TOML-файла:5051```python52import tomllib5354with open("pyproject.toml", "rb") as f:55 data = tomllib.load(f)56```5758Разбор строки TOML:5960```python61import tomllib6263toml_str = """64python-version = "3.11.0"65python-implementation = "CPython"66"""6768data = tomllib.loads(toml_str)69```7071## Таблица соответствия7273| TOML | Python |74| --- | --- |75| Документ TOML | dict |76| строка | str |77| целое число | int |78| float | float (настраивается с помощью *parse\_float*) |79| булевый | bool |80| дата-время со смещением | datetime.datetime (атрибут `tzinfo` установлен в экземпляр `datetime.timezone`) |81| локальная дата-время | datetime.datetime (атрибут `tzinfo` установлен в `None`) |82| локальная дата | datetime.date |83| локальное время | datetime.time |84| массив | list |85| таблица | dict |86| встроенная таблица | dict |87| массив таблиц | список словарей |88