tomllib — 解析 TOML 文件

3.11 版新增。

**源代码:** Lib/tomllib


此模块提供了一个用于解析 TOML(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

以下异常可用

异常 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 文档

字典

字符串

字符串

整数

整数

浮点数

浮点数(可使用 parse_float 配置)

布尔值

布尔值

带偏移量的日期时间

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

本地日期时间

datetime.datetime(tzinfo 属性设置为 None

本地日期

datetime.date

本地时间

datetime.time

数组

列表

字典

内联表

字典

表数组

字典列表