skillfed

easydict

Access dict values as attributes (works recursively).

easydict v1.13 4.3M downloads/30d#2,340 on PyPI314
Copyleft license LGPL-3.0 DORMANT released

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 easydict

uv

uv add easydict

poetry

poetry add easydict

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)Natural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 2.5Programming Language :: Python :: 3.6Topic :: Utilities

Tags

dict attribute accessdot notation dictionarynested dict accessorjavascript-like dict propertiesdict to object conversionrecursive dict attributesjson to attributes
dict-wrapperjson-conveniencedata-access

More Utilities packages