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ファイルを読み込みます。第1引数には読み込み可能なバイナリのファイルオブジェクトを指定します。戻り値は dict です。TOMLの型は conversion table を使用してPythonのデータ型に変換されます。

parse_float は、全てのデコードされる TOML の浮動小数点数文字列に対して呼ばれます。デフォルトでは、 float(num_str) と等価です。これは TOML 浮動小数点数に対して他のデータ型やパーサ (たとえば decimal.Decimal) を使うのに使えます。呼び出し可能オブジェクトは dictlist 以外を返す必要があり、そうでない場合は ValueError が送出されます。

無効なTOMLドキュメントの場合は TOMLDecodeError が送出されます。

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

str からTOMLを読み込みます。戻り値は dict です。TOMLの型は conversion table を使用してPythonのデータ型に変換されます。parse_float  引数は load() と同じ意味を持ちます。

無効なTOMLドキュメントの場合は TOMLDecodeError が送出されます。

次の例外がサポートされています:

exception tomllib.TOMLDecodeError(msg, doc, pos)

Subclass of ValueError with the following additional attributes:

msg

The unformatted error message.

doc

The TOML document being parsed.

pos

The index of doc where parsing failed.

lineno

The line corresponding to pos.

colno

The column corresponding to pos.

バージョン 3.14 で変更: Added the msg, doc and pos parameters. Added the msg, doc, pos, lineno and colno attributes.

バージョン 3.14 で非推奨: Passing free-form positional arguments is deprecated.

使用例

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ドキュメント

辞書

string

str

整数

int

浮動小数点数

float (parse_float で設定可能)

boolean

真偽値型(bool)

オフセット付きの日時に日地

datetime.datetime(tzinfo 属性は datetime.timezone のインスタンスが設定される)

ローカルの日時

datetime.datetime(tzinfo 属性は None に設定される)

ローカルの日付

datetime.date

ローカルの時刻

datetime.time

配列

リスト

テーブル

辞書

インラインテーブル

辞書

テーブルの配列

辞書のリスト