LoginSignup
7
5

More than 5 years have passed since last update.

PythonJSON、辞書を取り扱う時に便利なdotmapライブラリの紹介

Posted at

言葉で説明するよりコードを見てもらった方が早いのでいざ。

基本的な使い方

PyPi - dotmap

基礎
from dotmap import Dotmap

m = DotMap()

# 定義なしでメンバ変数へアクセスできるような振る舞いをする
m.name = "Mark"

print(m)
# DotMap([('name', 'Mark')])
print(m.name)
# 'Mark'

# dictのようなアクセスもできる
m["name"] = "Adam"

print(m["name"])
# 'Adam'
応用
# ネストされた値へのアクセスもできる
m.person.steve.age = 31

# 中身はこんな感じ
print(m)
"""
DotMap([('name', 'Adam'), 
  ('person', DotMap([('steve', DotMap([('age', 31)]))]))])
"""

具体例

Github - Keras-Project-Templateのように設定をjsonファイルに記述しておき、値を読み出す使い方が便利でしょうか。

config.json
{
    "model": {
        "lerarning_rate ": 0.001,
        "momentum": 0.0,
        "decay": 0.0
    }
}
import json
from dotmap import Dotmap

with open("config.json", 'r') as config:
    config_dict = json.load(config)

dotmap_config_dict = Dotmap(config_dict)

print(dotmap_config_dict)
"""
DotMap([('exp',
         DotMap([('lerarning_rate', 0.001),
                 ('momentum', 0.0),
                 ('decay', 0.0)]))])
"""

以上です、読んで頂きありがとうございました。

参考

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5