tomllib --- 解析 TOML 文件

Added in version 3.11.

源代码: Lib/tomllib


This module provides an interface for parsing TOML 1.0.0 (Tom's Obvious Minimal Language, https://toml.io). This module does not support writing TOML.

参见

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

参见

TOML Kit 包 一个是兼具读取和写入功能的保留样式的 TOML 库。 它是用于编辑现有 TOML 文件的本模块的推荐替代品。

这个模块定义了以下函数:

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

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

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

对无效的 TOML 文档将引发 TOMLDecodeError

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

str 对象中加载 TOML。返回 dict。使用 转换表 将 TOML 类型转换为 Python类型。参数 parse_floatload() 中的意义相同。

对无效的 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(tzinfo 属性设置为 datetime.timezone 的实例)

local date-time

datetime.datetime (tzinfo 属性设置为 None

local date

datetime.date

local time

datetime.time

array

list

table

dict

内联表

dict

表数组

字典列表