入れ子(ネスト)された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()関数で出力させることができました。
コメント