Python - パーサ - tompllib toml

 クラウディア
1. 概要
2. 読み込み

1. 概要

 「tompllib」は、「python」の標準モジュールで、「.toml」形式のファイルを扱います。  標準ライブラリなのですが、バージョン「3.11」からの登場だそうで、それ以前のバージョンでは使えません。  本ページは、下記のサイトを参考にさせていただきました。
tomllib --- TOML ファイルの解析」
「Python 3.11 から追加された標準パッケージ tomllib の紹介

2. 読み込み

 下記の内容の。

[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"

[dependencies]

[[bin]]
name = "src"
path = "src/main.rs"
 「Rust」の設定ファイルがあったので。  読み込ませてみます。

import tomllib

with open("Cargo.toml", "rb") as file:
  data = tomllib.load(file)

  print(data)
 てなソースを記述して、実行すると、下記の結果が得られます。

{'package': {'name': 'hello_world', 'version': '0.1.0', 'edition': '2021'}, 'dependencies': {}, 'bin': [{'name': 'src', 'path': 'src/main.rs'}]}
 ちょっとびっくりだったのが、ファイルオープン時のモード「binary mode」指定です。  どう見ても、テキストにしか見えないのですが・・・。  「b」をつけておかないと。

Traceback (most recent call last):
  File "/home/hogehoge/lang/python/parser/toml/toml01.py", line 9, in 
    data = tomllib.load(file)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/tomllib/_parser.py", line 63, in load
    raise TypeError(
TypeError: File must be opened in binary mode, e.g. use `open('foo.toml', 'rb')`
kitayama@nt.sing.ne.jp /home/kitayama > python /home/hogehoge/lang/python/parser/toml/
 と怒られちゃいました。  保存しようと思ったら・・・。  メソッドは、「load()」「loads()」だけのようで、保存はできないようです。