tomllib --- 解析 TOML 文件¶
在 3.11 版本加入.
源代码: Lib/tomllib
这个模块提供了一个解析 TOML (Tom's Obvious Minimal Language, https://toml.io)接口。该模块不支持写 TOML。
参见
包 Tomli-W package 是一个 TOML writer,可以与该模块一起使用,其提供了标准库用户熟悉的 marshal 和 pickle 模块相似的写 API。
参见
TOML Kit 包 是一个兼具读和写功能的保持样式的 TOML 库。推荐使用此模块编辑已经存在的 TOML 文件。
这个模块定义了以下函数:
- tomllib.load(fp, /, *, parse_float=float)¶
- 读取一个 TOML 文件。第一个参数应该是一个可读的二进制文件对象。返回 - dict。使用 转换表 将 TOML 类型转换为 Python。- 对每个要解析的 TOML 浮点数字符串调用 parse_float。默认情况下,这相当于 - float(num_str)。这可以用于为 TOML 浮点数使用另一种数据类型或解析器(例如:- decimal.Decimal)。可调用对象不能返回- dict或- list,否则将引发- 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 | 
| string | str | 
| integer | int | 
| float | float(可用 parse_float 配置) | 
| boolean | bool | 
| offset date-time | datetime.datetime( | 
| local date-time | datetime.datetime ( | 
| local date | datetime.date | 
| local time | datetime.time | 
| array | list | 
| table | dict | 
| 内联表 | dict | 
| 表数组 | 字典列表 |