tomllib — 解析 TOML 文件

在 3.11 版本中新增。

源代码: Lib/tomllib


此模块提供了一个用于解析 TOML 1.0.0 (Tom’s Obvious Minimal Language, https://toml.cn) 的接口。此模块不支持写入 TOML。

另请参阅

Tomli-W 包是一个 TOML 写入器,可以与此模块结合使用,提供熟悉标准库 marshalpickle 模块的用户熟悉的写入 API。

另请参阅

TOML Kit 包是一个保留样式的 TOML 库,具有读取和写入功能。对于编辑已有的 TOML 文件,建议使用此包来替代此模块。

此模块定义了以下函数

tomllib.load(fp, /, *, parse_float=float)

读取 TOML 文件。第一个参数应为可读的二进制文件对象。返回一个 dict。使用此转换表将 TOML 类型转换为 Python 类型。

parse_float 将使用要解码的每个 TOML 浮点数的字符串调用。默认情况下,这等效于 float(num_str)。这可以用于为 TOML 浮点数使用其他数据类型或解析器(例如 decimal.Decimal)。可调用对象不能返回 dictlist,否则会引发 ValueError

如果 TOML 文档无效,则会引发 TOMLDecodeError

tomllib.loads(s, /, *, parse_float=float)

str 对象加载 TOML。返回一个 dict。使用此转换表将 TOML 类型转换为 Python 类型。parse_float 参数的含义与 load() 中的相同。

如果 TOML 文档无效,则会引发 TOMLDecodeError

以下异常可用

exception tomllib.TOMLDecodeError

ValueError 的子类。

示例

解析 TOML 文件

import tomllib

with open("pyproject.toml", "rb") as f:
    data = tomllib.load(f)

解析 TOML 字符串

import tomllib

toml_str = """
python-version = "3.11.0"
python-implementation = "CPython"
"""

data = tomllib.loads(toml_str)

转换表

TOML

Python

TOML 文档

dict

字符串

str

整数

int

浮点数

浮点数(可使用 parse_float 配置)

布尔值

bool

带偏移量的日期时间

datetime.datetime(tzinfo 属性设置为 datetime.timezone 的实例)

本地日期时间

datetime.datetime(tzinfo 属性设置为 None

本地日期

datetime.date

本地时间

datetime.time

数组

list

表格

dict

内联表格

dict

表格数组

字典列表