tomllib — 解析 TOML 檔案

在 3.11 版本中新增。

原始碼: Lib/tomllib


此模組提供了一個用於解析 TOML 1.0.0 (Tom’s Obvious Minimal Language, https://toml.io) 的介面。此模組不支援寫入 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

表格陣列

字典列表