tomllib
— 解析TOML檔案¶
在 3.11 版本中新增。
原始碼: Lib/tomllib
本模組提供了用於解析TOML 1.0.0(Tom's Obvious Minimal Language,https://toml.io)的介面。本模組不支援寫入TOML。
參見
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(msg, doc, pos)¶
ValueError
的子類,具有以下附加屬性- msg¶
未格式化的錯誤訊息。
- doc¶
正在解析的TOML文件。
- pos¶
文件中解析失敗的索引。
- lineno¶
與pos對應的行號。
- colno¶
與pos對應的列號。
3.14 版本後已廢棄: 傳遞自由形式的位置引數已廢棄。
示例¶
解析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 |
整數 |
int |
浮點數 |
浮點數(可透過parse_float配置) |
boolean |
bool |
帶偏移量的日期時間 |
datetime.datetime( |
本地日期時間 |
datetime.datetime( |
本地日期 |
datetime.date |
本地時間 |
datetime.time |
array |
list |
表 |
dict |
內聯表 |
dict |
表陣列 |
字典列表 |