EasyDict: A Beginner’s Guide to Fast Python Dictionaries
What it is
EasyDict is a small Python library that lets you access dictionary keys using attribute (dot) notation — recursively. Example: d = EasyDict({‘a’: {‘b’: 1}}); d.a.b == 1.
Install
- pip:
pip install easydict - conda:
conda install -c conda-forge easydict
Basic usage
python
from easydict import EasyDict as edict d = edict({‘foo’:3, ‘bar’:{‘x’:1}}) print(d.foo)# 3 print(d.bar.x) # 1 d.new = 5 print(d[‘new’]) # 5
Key features
- Attribute access: use d.key instead of d‘key’.
- Dict compatibility: still behaves like a normal dict (items(), keys(), etc.).
- Set and update: assign attributes or items interchangeably.
- Subclassable: can be subclassed to add defaults or behavior.
When to use
- Parsing JSON or nested config data for cleaner code.
- Quick scripts and prototypes where convenience outweighs strict typing.
Caveats
- Attribute names that clash with dict/instance methods or Python keywords can be confusing (e.g., d.items).
- Slight overhead vs. plain dicts — not intended for tight inner loops where micro-performance matters.
- Not a drop-in replacement if you rely on strict key vs. attribute semantics.
Quick tips
- Use in conjunction with type hints and tests for larger projects.
- Convert back to dict if you need serialization:
dict(d)(for nested structures, recursively convert).
If you want, I can generate a short example showing converting nested JSON into EasyDict and back.
Leave a Reply