tomllib
— 解析 TOML 文件¶
在 3.11 版本中新增。
源代码: Lib/tomllib
此模块提供了一个用于解析 TOML 1.0.0 (Tom’s Obvious Minimal Language, https://toml.cn) 的接口。此模块不支持写入 TOML。
另请参阅
TOML Kit 包是一个保留样式的 TOML 库,具有读取和写入功能。对于编辑已有的 TOML 文件,建议使用此包来替代此模块。
此模块定义了以下函数
- tomllib.load(fp, /, *, parse_float=float)¶
读取 TOML 文件。第一个参数应为可读的二进制文件对象。返回一个
dict
。使用此转换表将 TOML 类型转换为 Python 类型。parse_float 将使用要解码的每个 TOML 浮点数的字符串调用。默认情况下,这等效于
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 |
字符串 |
str |
整数 |
int |
浮点数 |
浮点数(可使用 parse_float 配置) |
布尔值 |
bool |
带偏移量的日期时间 |
datetime.datetime( |
本地日期时间 |
datetime.datetime( |
本地日期 |
datetime.date |
本地时间 |
datetime.time |
数组 |
list |
表格 |
dict |
内联表格 |
dict |
表格数组 |
字典列表 |