Skip to main content

Access dict values as attributes (works recursively).

Project description

https://img.shields.io/pypi/v/easydict.svg https://img.shields.io/pypi/dm/easydict.svg

Easydict

EasyDict allows to access dict values as attributes (works recursively). A Javascript-like properties dot notation for python dicts.

INSTALL

pip install easydict

USAGE

>>> from easydict import EasyDict as edict
>>> d = edict({'foo':3, 'bar':{'x':1, 'y':2}})
>>> d.foo
3
>>> d.bar.x
1

>>> d = edict(foo=3)
>>> d.foo
3

Very useful when exploiting parsed JSON content !

>>> from easydict import EasyDict as edict
>>> from simplejson import loads
>>> j = """{
"Buffer": 12,
"List1": [
    {"type" : "point", "coordinates" : [100.1,54.9] },
    {"type" : "point", "coordinates" : [109.4,65.1] },
    {"type" : "point", "coordinates" : [115.2,80.2] },
    {"type" : "point", "coordinates" : [150.9,97.8] }
]
}"""
>>> d = edict(loads(j))
>>> d.Buffer
12
>>> d.List1[0].coordinates[1]
54.9

Can set attributes as easily as getting them :

>>> d = EasyDict()
>>> d.foo = 3
>>> d.foo
3

It is still a dict !

>>> d = EasyDict(log=False)
>>> d.debug = True
>>> d.items()
[('debug', True), ('log', False)]

Instance and class attributes are accessed like usual objects…

>>> class Flower(EasyDict):
...     power = 1
...
>>> f = Flower({'height': 12})
>>> f.power
1
>>> f['power']
1

LICENSE

  • Lesser GNU Public License

AUTHORS

makinacom

Similar tools

CHANGELOG

1.12 (2024-02-13)

  • Fix #22: Do not convert tuple attributes to list (#44)

1.11 (2023-10-24)

  • Fix #39: RecursionError when dict in class member (#41)

  • Minor changes in README

1.10 (2022-09-28)

  • Make tests compatible with python2 and python3 (thanks @JackLangerman)

  • Dictify input

  • Fix license metadata

1.9 (2018-10-18)

  • Fix issue #3 that update and pop now work correctly on EasyDicts.

1.8 (2018-08-17)

  • Update package classifiers.

1.7 (2017-04-27)

  • Prevent copying sub-EasyDicts on assignment to fix unpickling (#7, thanks @Chronos-Sk)

1.6 (2015-01-27)

  • Allow setting attributes via setting items (thanks phivos)

1.5 (2014-08-07)

  • Allow subclassing using self instead of class name (thanks Steve Engledow)

1.4 (2011-03-13)

  • Access class attributes like instance attributes

1.3 (2012-02-08)

  • Better documentation and tests

1.2 (2011-06-08)

  • Fix inclusion of README

1.1 (2012-04-21)

  • Switch to distutils2

1.0 (2011-04-18)

  • Initial working version

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

easydict-1.12.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

easydict-1.12-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file easydict-1.12.tar.gz.

File metadata

  • Download URL: easydict-1.12.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for easydict-1.12.tar.gz
Algorithm Hash digest
SHA256 0555ccc3a73d8614901b368b72c28ad476ecce177dbdf424c83e08c17a49e076
MD5 29a1ffeb7ca493a7df0a570ed18963dc
BLAKE2b-256 b4770008d8b81b524debadb555934111122960346213f732939ea2b6390f99b0

See more details on using hashes here.

File details

Details for the file easydict-1.12-py3-none-any.whl.

File metadata

  • Download URL: easydict-1.12-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for easydict-1.12-py3-none-any.whl
Algorithm Hash digest
SHA256 039efc4e476c130cdc4dac3807223abbdf233506420ed00b4beddc1569cfe360
MD5 dd4a97eb2ce2bcc4b73fea21b1756f31
BLAKE2b-256 3b379a0c29a3c8ec80c54ff9132160bfc5c6cc6fedda073b391c2a06d9ad0499

See more details on using hashes here.

Supported by

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