easydict
Access dict values as attributes (works recursively).
What it is and what it does
EasyDict is a thin wrapper around Python's built-in dict that lets you access dictionary values using attribute notation (dot syntax) instead of bracket indexing. It works recursively on nested dictionaries, so you can chain attribute accesses like `d.bar.x` instead of `d['bar']['x']`. The wrapper is transparent—the result is still a real dict, so all standard dict methods like `.items()` and `.pop()` work unchanged.
It is commonly used to make parsed JSON or configuration data more readable and convenient to work with in code. Since JSON structures often nest objects deeply, EasyDict eliminates the visual clutter of repeated bracket notation. You can also subclass it to add custom behavior while retaining the attribute-access convenience.
Use it for:
- Parse JSON responses from APIs and access nested fields using dot notation instead of repeated bracket indexing.
- Wrap configuration dictionaries loaded from files to make code that reads settings cleaner and more readable.
- Convert deeply nested data structures (e.g., from external APIs) into objects that feel more natural to access in Python.
- Subclass EasyDict to build lightweight data containers that behave like dicts but support attribute-style field access.
- Simplify exploratory data analysis or scripting where you frequently access nested dict values interactively.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
EasyDict wraps Python dictionaries to allow attribute-style access (dot notation) to dictionary values, including nested structures, while remaining a standard dict.
Yes, if you frequently work with nested dictionaries or parsed JSON and prefer dot notation over bracket indexing. The package is lightweight, has no dependencies, and is stable. However, note that it is dormant (last release 893 days ago); if you need active maintenance or modern Python version guarantees, verify compatibility with your target Python version first. The LGPL-3.0 license requires derivative works to remain open-source.
Install
easydict on PyPI
pip
pip install easydictuv
uv add easydictpoetry
poetry add easydictInstalling easydict
Before you install
Installation is straightforward with no runtime dependencies. The package is dormant (last release 2024-03-04, 893 days ago) but marked Production/Stable; the repository remains active and unarchived with modest community engagement (314 stars).
License in practice
Licensed under LGPL-3.0 (copyleft). Any derivative work or modification must be released under compatible terms; static linking or bundling in proprietary software requires careful review of your distribution model.
Quickstart
pip install easydict
from easydict import EasyDict as edict
d = edict({'foo': 3, 'bar': {'x': 1, 'y': 2}})
print(d.foo) # 3
print(d.bar.x) # 1
Verify before relying
- Whether the package is actively maintained or has entered long-term stable maintenance; last release was 893 days ago.
- Compatibility with modern Python versions beyond 3.6 (classifiers list 3.6 but current support is unspecified).
Package facts
| License | LGPL-3.0 (copyleft) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | dormant — 893 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 4,294,198/month — #2,340 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: easydict-1.13-py3-none-any.whl
Keywords: Tools
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
addictProvides a dictionary subclass that allows…
permissive · top 5,000 on PyPI
munchMunch provides a dictionary subclass that…
permissive · top 5,000 on PyPI
super-collectionsConverts nested JSON and YAML data into Python…
permissive · top 5,000 on PyPI
jsonasobj2Converts JSON data into Python objects with…
permissive · top 15,000 on PyPI
python-boxBox wraps Python dictionaries to enable…
permissive · top 5,000 on PyPI
mo-dotsProvides null-safe dot-notation access to…
copyleft · top 15,000 on PyPI
attrdictProvides dictionary-like objects that allow…
permissive · top 5,000 on PyPI
python-benedictA dict subclass that adds dot-notation access,…
permissive · top 5,000 on PyPI
jsonasobjConverts JSON data into Python objects with…
permissive · top 15,000 on PyPI
prodictProdict wraps Python dictionaries to allow…
permissive · top 15,000 on PyPI