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 composite key.
Examples
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.7. 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.io
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(value)
print(repr(flat.as_dict()))
print(flat == 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 Distributions
Built Distribution
Hashes for flatdict-3.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca3066e694f4665cff063d3e04f32845b78f44ea3ae576140e5cbbcbcd309485 |
|
MD5 | bc01e53ea7872aed682560e8981b6550 |
|
BLAKE2b-256 | 43c6acbcf73c945360ee3de8acaeaebdbc63a62d2814c5a8165dc5b0bb7547ab |