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.

警告

信頼できない情報源のデータを解析するときは注意してください。 悪意のある TOML 文字列によって、デコーダーが大量の CPU やメモリを消費する可能性があります。 解析するデータのサイズを制限することを推奨します。

参考

Tomli-W パッケージ はTOMLの書き込み用にこのモジュールと組み合わせて使用でき、標準ライブラリの marshal や pickle モジュールなどでユーザーによく知られている書き込み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) を使うのに使えます。呼び出し可能オブジェクトは dict や list 以外を返す必要があり、そうでない場合は 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)

ValueError のサブクラスで、以下の追加の属性を持ちます:

msg

フォーマットされていないエラーメッセージです。

doc

パース対象の TOML ドキュメントです。

pos

doc の解析に失敗したインデクスです。

lineno

pos に対応する行です。

colno

pos に対応する列です。

バージョン 3.14 で変更: msg、doc、pos 引数を追加しました。 msg、doc、pos、lineno、colno 属性を追加しました。

バージョン 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ドキュメント

辞書

string

文字列

整数

int

浮動小数点数

浮動小数点数(parse_float で設定可能)

ブール値

真偽値型(bool)

オフセット付きの日時

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

ローカルの日時

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

ローカルの日付

datetime.date

ローカルの時刻

datetime.time

array

list

テーブル

辞書

インラインテーブル

辞書

テーブルの配列

辞書のリスト