Dictionary wrapper for quick access to deeply nested keys.
Project description
- Info:
Dictionary wrapper for quick access to deeply nested keys.
Features
Simple wrapper around python dictionary and dict like objects
Two wrappers with the same dict are considered equal
Access to deeply nested keys with dot notation: dot['deeply.nested.key']
Create, read, update and delete nested keys of any length
Expose all dictionary methods like .get, .pop, .keys and other
Access dicts in lists by index dot['parents.0.first_name']
Installation
pip install dotty-dict
Documentation
Full documentation: http://dotty-dict.readthedocs.io
Public API: http://dotty-dict.readthedocs.io/en/latest/api.html
Examples and usage ideas: http://dotty-dict.readthedocs.io/en/latest/examples.html
TODO
support for setting value in multidimensional lists
key=value caching to speed up lookups and low down memory consumption
Quick Example
Create new dotty using factory function.
>>> from dotty_dict import dotty
>>> dot = dotty({'plain': {'old': {'python': 'dictionary'}}})
>>> dot['plain.old']
{'python': 'dictionary'}
You can start with empty dotty
>>> from dotty_dict import dotty
>>> dot = dotty()
>>> dot['very.deeply.nested.thing'] = 'spam'
>>> dot
Dotty(dictionary={'very': {'deeply': {'nested': {'thing': 'spam'}}}}, separator='.', esc_char='\\')
>>> dot['very.deeply.spam'] = 'indeed'
>>> dot
Dotty(dictionary={'very': {'deeply': {'nested': {'thing': 'spam'}, 'spam': 'indeed'}}}, separator='.', esc_char='\\')
>>> del dot['very.deeply.nested']
>>> dot
Dotty(dictionary={'very': {'deeply': {'spam': 'indeed'}}}, separator='.', esc_char='\\')
>>> dot.get('very.not_existing.key')
None
Install for development
Install dev dependencies
`console $ make install `
Testing
`console $ make test `
Or full tests with TOX:
`console $ make test-all `
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.