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 для запису.

Дивіться також

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