语法
基本规则
key = value键值对(每行一个)
#注释(到行尾)
Case sensitive键和值区分大小写
UTF-8文件必须是合法的 UTF-8
No nullTOML 没有 null 类型
最小示例
title = "My App" debug = true port = 8080
字符串
字符串类型
"basic"基本字符串(支持转义)
'literal'字面字符串(不转义)
"""multi"""多行基本字符串
'''multi'''多行字面字符串
示例
basic = "Hello\nWorld" literal = 'C:\Users\path' multi = """ Line one Line two"""
转义序列
\n \t \r换行、制表符、回车
\\反斜杠
\uXXXXUnicode(4 位十六进制)
\UXXXXXXXXUnicode(8 位十六进制)
数字与布尔值
数字类型
42整数
1_000_000带下划线的整数
0xff / 0o77 / 0b11十六进制、八进制、二进制
3.14浮点数
5e+22 / 1e-2科学计数法
inf / nan特殊浮点值
true / false布尔值(必须小写)
示例
count = 42 price = 19.99 hex_color = 0xFF5733 enabled = true
日期
日期与时间类型
2026-03-26T10:30:00Z带时区的日期时间(UTC)
2026-03-26T10:30:00-05:00带时区的日期时间(EST)
2026-03-26T10:30:00本地日期时间(无时区)
2026-03-26本地日期
10:30:00本地时间
示例
created = 2026-03-26T10:30:00Z birthday = 1990-05-15 alarm = 07:00:00
表语法
[server] host = "localhost" port = 8080 [server.ssl] enabled = true cert = "/path/to/cert.pem"
表数组
[[users]] name = "Alice" role = "admin" [[users]] name = "Bob" role = "user"
规则
[name]标准表头
[a.b.c]点号键 — 嵌套表
[[name]]表数组
No redefine不能重复定义同一个表
数组
数组语法
colors = ["red", "green", "blue"] numbers = [1, 2, 3]
多行数组
hosts = [ "alpha.example.com", "beta.example.com", ]

TOML 数组允许末尾逗号

规则
Same type所有元素必须同类型
Trailing comma最后一个元素后可以有逗号
Newlines数组可以跨多行
内联表
内联表语法
point = { x = 1, y = 2 } user = { name = "Alice", admin = true }
规则
Single line必须写在一行内
No trailing comma不允许末尾逗号
No newlines不能跨多行
No adding keys不能在后续再添加键
内联 vs 标准
# Inline — compact, one-liners db = { host = "localhost", port = 5432 } # Standard — readable, extendable [db] host = "localhost" port = 5432
常用模式
pyproject.toml
[project] name = "myapp" version = "1.0.0" dependencies = ["flask>=3.0"]
Cargo.toml
[package] name = "myapp" version = "0.1.0" edition = "2021"
技巧
taploTOML 工具集 — 格式化与 lint
No null省略该键,而不是设置为 null
No anchors与 YAML 不同,没有引用/别名系统
Strict不允许重复键,不允许混合类型数组