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の書き込み用にこのモジュールと組み合わせて使用でき、標準ライブラリの 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)¶
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
andcolno
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( |
ローカルの日時 |
datetime.datetime( |
ローカルの日付 |
datetime.date |
ローカルの時刻 |
datetime.time |
配列 |
リスト |
テーブル |
辞書 |
インラインテーブル |
辞書 |
テーブルの配列 |
辞書のリスト |