Python:
Работа с TOML

Как это сделать:

Перед началом установите пакет toml с помощью pip install toml. Давайте разберем файл TOML:

import toml

# Пример содержимого TOML в виде строки
toml_string = """
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00Z # Даты первого класса

[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
"""

# Разбор строки TOML
parsed_toml = toml.loads(toml_string)

# Доступ к данным
print(parsed_toml['owner']['name'])  # Вывод: Tom Preston-Werner
print(parsed_toml['database']['ports'])  # Вывод: [8001, 8001, 8002]

Подробно

TOML был создан Томом Престоном-Вернером, одним из основателей GitHub, как более удобный формат файла конфигурации. Он разработан для однозначного отображения в хеш-таблицу и легкости машинного разбора.

По сравнению с JSON, TOML более читабельный для конфигурационных файлов и поддерживает комментарии. YAML, другая альтернатива, может быть более компактным, но его зависимость от отступов и тонкие моменты, такие как запрет на использование табуляции, могут сбивать с толку.

Что касается деталей реализации, значения в TOML типизированы, что включает строки, целые числа, числа с плавающей точкой, булевы значения, даты/времена, массивы и таблицы. Все регистрозависимо. Кроме того, TOML поддерживает многострочные строки и, начиная с последней версии, даже позволяет иметь массивы с элементами разных типов.

Python использует библиотеку toml, которая в плане API похожа на библиотеки JSON и YAML. У вас есть toml.load и toml.loads для чтения TOML из файла или строки соответственно, и toml.dump и toml.dumps для записи его.

См. также

  • Официальный репозиторий TOML на GitHub с описаниями: github.com/toml-lang/toml
  • Документация к библиотеке toml для Python: pypi.org/project/toml/
  • Реальные примеры использования TOML: файлы конфигурации менеджера пакетов Rust cargo или инструмента для упаковки Python poetry.