Python module for interacting with nested dicts as a single level dict with delimited keys.
Project description
FlatDict is a dict object that allows for single level, delimited key/value pair mapping of nested dictionaries. You can interact with FlatDict like a normal dictionary and access child dicts as you normally would or with the composited key.
For example:
foo = {'foo': {'bar': 'baz', 'qux': 'corge'}}
is represented as:
{'foo:bar': 'baz',
'foo:qux': 'corge'}
And can still be accessed as:
foo['foo']['bar']
and
foo['foo:bar']
Additionally, lists and tuples are also converted into dicts using enumerate().
For example:
d = {'list': ['a', 'b', 'c',]}
Will be flattened as follows:
flat = {'list:0': 'a', 'list:1': 'b', 'list:2': 'c'}
API
FlatDict has the same methods as dict in Python 2.6. In addition, it has a FlatDict.as_dict method which will return a pure nested dictionary from a FlatDict value.
Documentation is available at http://flatdict.readthedocs.org
Installation
$ pip install flatdict
Example Use
import flatdict
values = {'foo': {'bar': {'baz': 0,
'qux': 1,
'corge': 2},
'grault': {'baz': 3,
'qux': 4,
'corge': 5}},
'garply': {'foo': 0, 'bar': 1, 'baz': 2, 'qux': {'corge': 3}}}
flat = flatdict.FlatDict(values)
print flat['foo:bar:baz']
flat['test:value:key'] = 10
del flat['test']
for key in flat:
print key
for values in flat.itervalues():
print key
print repr(flat.as_dict())
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.
Source Distribution
Built Distribution
Hashes for flatdict-1.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbb7bc100fef20f995ef4ad49c5c26ab401301bdb3721f8a33156c80e849351e |
|
MD5 | 12fd7d11de025e15baacf93a56f20f05 |
|
BLAKE2b-256 | e167467657a9be9bb14e4723244845fff1bcae8e54665f4b245e7a2077bb4d2e |