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
или инструмента для упаковки Pythonpoetry
.