← 返回 Lexicon
Programming2025-09-08

TOML 格式笔记

本笔记介绍 TOML 的基本概念、文件用途、键值对语法、表与数组写法、常见配置场景,以及它在 Python 和 Rust 项目配置中的应用。

TOML数据格式配置文件

TOML (Tom's Obvious, Minimal Language) 是一种简洁的配置文件格式,强调可读性和易用性。它常用于软件和项目的配置文件,尤其在 Python 生态中(如 pyproject.toml)已成为标准。


定义

  • 文件扩展名.toml
  • 用途:配置文件、应用参数、项目管理(如 Python 的构建工具、Rust 的 Cargo 配置等)
  • 设计目标:简单直观,便于人工编辑,同时可被机器高效解析

相关术语

2.1 键值对

  • 使用 = 分隔键和值
  • 字符串需用双引号 " " 包裹,数字和布尔值可直接书写
title = "My Project"
version = 1.0
debug = true


2.2 表格 (Tables)

  • 用方括号 [] 定义表格,类似 JSON 的对象
  • 一个表格下可包含多个相关键值对
[database]
server = "localhost"
ports = [8000, 8001, 8002]


2.3 嵌套表格 (Nested Tables)

  • 使用 . 来表示层级关系
[owner]
name = "Chris"

[owner.address]
street = "123 Main St"
city = "Shanghai"


2.4 数组 (Arrays)

  • 使用 [] 表示,值之间用逗号分隔
fruits = ["apple", "banana", "cherry"]


2.5 日期与时间

  • 支持 ISO 8601 格式
release_date = 2024-10-20T12:00:00Z


2.6 注释

  • 使用 # 开头
# 这是一个注释
title = "My Project"  # 行尾注释


3. 示例

# 基本键值对
title = "Example TOML"
version = 1.1
debug = true

# 表格
[database]
server = "192.168.1.1"
ports = [8000, 8001, 8002]
enabled = true

# 嵌套表格
[owner]
name = "Chris"

[owner.address]
street = "456 Another St"
city = "Shanghai"

# 日期和时间
release_date = 2024-10-20T12:00:00Z


阅读提示

优点

  • 可读性强,语法简洁,适合人工维护
  • 原生支持日期和时间(比 JSON 更友好)
  • 更严格的规范,减少解析歧义

缺点

  • 使用范围较 JSON/YAML 小,主要集中在 Python、Rust 等生态
  • 不支持复杂的表达式,仅限配置用途

5. 常见应用

  • Python 项目pyproject.toml 用于构建工具和依赖管理(如 Poetry, Hatch)
  • Rust 项目Cargo.toml 用于依赖与项目配置
  • 应用配置:适合跨平台的配置文件标准化