入れ子(ネスト)されたdictを区切られたキーを持つ単一のdictとして操作できるFlatDict

入れ子(ネスト)されたdict(辞書型配列)を区切られたキーを持つ単一のdict(辞書型配列)として操作できるライブラリ「FlatDict」について解説します。入れ子(ネスト)とは、あるものの中に、それと同じ形(種類)のものが入っている構造のこと。ロシアの民芸品の人形であるマトリョーシカ人形を思い出すと分かりやすい。

「FlatDict」ライブラリは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。なお、Python3.5以降で使用できます。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■snscrapeをインストールする

それでは、Heliumをインストールするために、今回はpipを経由してインストールを行うので、まずWindowsのコマンドプロンプトを起動します。

pip install flatdict

起動後、上記のコマンドを入力し、Enterキーを押します。

なお、今回は、pythonランチャーを使用しており、Python Version 3.8.5にインストールを行うために、pipを使う場合にはコマンドでの切り替えを行います。

py -3.8 -m pip install flatdict

切り替えるために、上記のコマンドを入力し、Enterキーを押します。

Defaulting to user installation because normal site-packages is not writeable
Collecting flatdict
Downloading flatdict-4.0.1.tar.gz (8.3 kB)
Using legacy setup.py install for flatdict, since package 'wheel' is not installed.
Installing collected packages: flatdict
Running setup.py install for flatdict ... done
Successfully installed flatdict-4.0.1

Enterキーを押すと、インストールが開始され、上記のように「Successfully installed」と表示されます。これが表示されれば、flatdictが正常にインストールされたことになります。

なお、今回はflatdictのバージョン4.0.1をインストールしました。

■dict(辞書型配列)を入れ子にし、区切られたキーを持つdict(辞書型配列)として、値を取得する

インストール後、FlatDictを使用し、dict(辞書型配列)を入れ子にし、区切られたキーを持つdict(辞書型配列)として、値を取得してみます。

■コード

import flatdict

value = flatdict.FlatDict({'組織': {'社員1': '田中', '社員2': '岡本','社員3': '鈴木'}})

print(value['組織:社員1'])

今回は、importでFlatDictを呼び出します。その後にvalueという変数を定義します。その中でflatdict.FlatDict()関数を使用します。括弧内には、”波括弧 {} ”でdict(辞書型配列)を作成し、作成したdict(辞書型配列)に、さらに波括弧 {} で辞書を作成します。作成後、要素(キーと値のペア)を入れます。これで、辞書(dictionary) オブジェクトが作られる。

オブジェクトをvalue変数に格納し、print()関数で入れ子(ネスト)されたdict(辞書型配列)内の値を取得,アクセスしてみます。

なお今回は「value[‘組織:社員1’]」としていますが「value[‘組織’][‘社員1’])」でも取得,アクセスが可能です。

■実行

このスクリプトを「dict_test.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、入れ子(ネスト)されたdict(辞書型配列)内のキーと値にアクセスすることができ、print()関数で出力させることができました。

コメント

タイトルとURLをコピーしました