Skip to main content

Effortless nested dictionary access — dot notation, safe missing keys, auto-vivification, and more

Project description

easydotdict

Make nested dictionaries effortless — dot-notation access, safe missing-key handling, auto-vivification, deep path operations, and pretty-printing. Pure Python, no dependencies.

from easydotdict import dotdict

d = dotdict({'user': {'profile': {'name': 'Alice'}}})
print(d.user.profile.name)       # Alice
print(d['user'].profile.name)    # same
print(d.user.email)              # None (safe, no error)

d.name = 'Alice'
d.name.character = 5  # auto-converts scalar -> nested: {'Alice': {'character': 5}}

d.config.database.host = 'localhost'  # auto-creates path
d.put('server.port', 8080)            # or use path string
print(d.dig('user.name'))             # Alice (deep path getter)

flat = d.flatten()                    # {'user.profile.name': 'Alice', ...}
restored = dotdict.unflatten(flat)   # reverse

d.merge({'settings': {'debug': True}})  # deep merge
print(d)                                # indented JSON

Features

  • Dot notationd.user.profile.name instead of d['user']['profile']['name']
  • Dual access — dot and bracket notation work interchangeably
  • Safe accessd.missing returns None, no KeyError/AttributeError
  • Auto-vivificationd.a.b.c = value auto-creates intermediate structures
  • Scalar auto-conversiond.name = 'Alice'; d.name.character = 5 wraps scalar into {'Alice': {'character': 5}}
  • Deep path operationsdig, put, has with dot-separated strings
  • Flatten / Unflatten — recursive flatten and restore with flatten() and unflatten()
  • Deep mergeupdate() and merge() merge recursively, preserving existing keys
  • Cloneclone() returns a deep independent copy
  • Empty checkis_empty() checks if the dict has no keys
  • Auto-conversion — nested dicts and lists containing dicts are wrapped automatically
  • Pretty-printprint(d) outputs indented JSON
  • Comparisons — scalars support <, >, <=, >= comparisons
  • f-string ready — format specs like {d.name:>10} delegate to the underlying value
  • to_dict() — recursively converts back to plain dicts and lists
  • Pure Python — standard library only, Python 3.8+

Install

pip install easydotdict

Documentation

See docs.md for full API reference, edge cases, and examples.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easydotdict-1.1.0.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

easydotdict-1.1.0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file easydotdict-1.1.0.tar.gz.

File metadata

  • Download URL: easydotdict-1.1.0.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for easydotdict-1.1.0.tar.gz
Algorithm Hash digest
SHA256 a5ceb0f640eea0b40d44c65d32193074cb8e9c987c87656b39f865145acbdaa5
MD5 52f27d2787bdcfa6b6f6f18acb830094
BLAKE2b-256 6e588becdbb8ab4767cbe9a746588bdc0010ad2acd67a896395bcdfd061bdad0

See more details on using hashes here.

File details

Details for the file easydotdict-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: easydotdict-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for easydotdict-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e058ed5e9e69bdeedc39c042f7f447a3b9a22ec931bc03c05220a4f9d0ffd86b
MD5 7871a9675f5d50b0bcb5d3441c2c8952
BLAKE2b-256 f77515188337c9e222223802da915d83376fbf4f3b98d05e88ce8cf3de7cc3c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page