tomllib --- Phân tích tập tin TOML

Added in version 3.11.

Source code: Lib/tomllib


Mô-đun này cung cấp giao diện để phân tích cú pháp TOML 1.0.0 (Ngôn ngữ tối thiểu rõ ràng của Tom, https://toml.io). Mô-đun này không hỗ trợ viết TOML.

Xem thêm

Tomli-W package là một trình ghi TOML có thể được sử dụng cùng với mô-đun này, cung cấp khả năng ghi API quen thuộc với người dùng mô-đun thư viện marshalpickle tiêu chuẩn.

Xem thêm

TOML Kit package là thư viện TOML bảo toàn kiểu dáng với cả khả năng đọc và ghi. Đây là sự thay thế được khuyến nghị cho mô-đun này để chỉnh sửa các tệp TOML hiện có.

Mô-đun này xác định các chức năng sau:

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

Đọc tệp TOML. Đối số đầu tiên phải là một đối tượng tệp nhị phân và có thể đọc được. Trả về dict. Chuyển đổi các loại TOML sang Python bằng conversion table này.

parse_float sẽ được gọi với chuỗi của mỗi float TOML được giải mã. Theo mặc định, điều này tương đương với float(num_str). Điều này có thể được sử dụng để sử dụng kiểu dữ liệu hoặc trình phân tích cú pháp khác cho các số float TOML (ví dụ: decimal.Decimal). Hàm có thể gọi không được trả về dict hoặc list, nếu không thì ValueError sẽ được nâng lên.

Một TOMLDecodeError sẽ xuất hiện trên một tài liệu TOML không hợp lệ.

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

Tải TOML từ đối tượng str. Trả về dict. Chuyển đổi các loại TOML sang Python bằng conversion table này. Đối số parse_float có cùng ý nghĩa như trong load().

Một TOMLDecodeError sẽ xuất hiện trên một tài liệu TOML không hợp lệ.

Các ngoại lệ sau đây có sẵn:

exception tomllib.TOMLDecodeError(msg, doc, pos)

Lớp con của ValueError với các thuộc tính bổ sung sau:

msg

Thông báo lỗi không được định dạng.

doc

Tài liệu TOML đang được phân tích cú pháp.

pos

Chỉ mục của doc nơi phân tích cú pháp không thành công.

lineno

Dòng tương ứng với pos.

colno

Cột tương ứng với pos.

Thay đổi trong phiên bản 3.14: Đã thêm các thông số msg, docpos. Đã thêm các thuộc tính msg, doc, pos, linenocolno.

Sắp loại bỏ từ phiên bản 3.14: Truyền đối số vị trí dạng tự do không được dùng nữa.

Ví dụ

Phân tích tệp TOML:

nhập tomlib

với open("pyproject.toml", "rb")  f:
    dữ liệu = tomllib.load(f)

Phân tích chuỗi TOML:

nhập tomlib

toml_str = """
phiên bản python = "3.11.0"
triển khai python = "CPython"
"""

dữ liệu = tomllib.loads(toml_str)

Bảng chuyển đổi

TOML

Python

tài liệu TOML

mệnh lệnh

chuỗi

str

số nguyên

int

phao

float (có thể định cấu hình bằng parse_float)

boolean

bool

ngày giờ bù đắp

datetime.datetime (thuộc tính tzinfo được đặt thành phiên bản của datetime.timezone)

ngày giờ địa phương

datetime.datetime (thuộc tính tzinfo được đặt thành None)

ngày địa phương

datetime.date

giờ địa phương

ngày giờ.giờ

mảng

danh sách

bàn

mệnh lệnh

bảng nội tuyến

mệnh lệnh

mảng bảng

danh sách các lệnh