## Library to update nested dicts and lists
You can change the values in a flattened version of your dict that NestedNop creates for you. After you editing, NestedNop updates the original structure automatically.
```python
pip install nestednop
```
```python
dictoriginal=data={'level1': {'t1': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
't3': {'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},
's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},
's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},
's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}},
'level2': {'t1': {'s1': {'col1': 5, 'col2': 4, 'col3': 9, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 5},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 13},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 20}},
't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},
't3': {'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},
's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},
's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},
's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}}}
from nestednop import NestedNop
nest=NestedNop(dictoriginal)
for key, item in nest.iterable_flat.items():
if item['get_value']() == 4 and key[-1] == 'col3':
item['set_value'](400000000000000)
updatediter = nest.get_updated_iterable()
updatediter
{'level1': {'t1': {'s1': {'col1': 5,
'col2': 4,
'col3': 400000000000000,
'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 400000000000000, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 400000000000000, 'col4': 9}},
't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 400000000000000, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 400000000000000, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 400000000000000, 'col4': 9}},
't3': {'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},
's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},
's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},
's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}},
'level2': {'t1': {'s1': {'col1': 5, 'col2': 4, 'col3': 9, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 400000000000000, 'col4': 5},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 13},
's4': {'col1': 5, 'col2': 4, 'col3': 400000000000000, 'col4': 20}},
't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 400000000000000, 'col4': 9},
's2': {'col1': 1, 'col2': 5, 'col3': 400000000000000, 'col4': 8},
's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},
's4': {'col1': 5, 'col2': 4, 'col3': 400000000000000, 'col4': 9}},
't3': {'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},
's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},
's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},
's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}}}
```
Raw data
{
"_id": null,
"home_page": "https://github.com/hansalemaos/nestednop",
"name": "nestednop",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "list,dict,python,nested",
"author": "Johannes Fischer",
"author_email": "<aulasparticularesdealemaosp@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/df/5c/8c3505b8a8d11540e47e90a93631357ef6d6e7c1d1b8be0fcaef46317689/nestednop-0.1.tar.gz",
"platform": null,
"description": "\n## Library to update nested dicts and lists\n\n\n\nYou can change the values in a flattened version of your dict that NestedNop creates for you. After you editing, NestedNop updates the original structure automatically.\n\n\n\n```python\n\npip install nestednop \n\n```\n\n\n\n```python\n\n dictoriginal=data={'level1': {'t1': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},\n\n 's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},\n\n 's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},\n\n 's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},\n\n 't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},\n\n 's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},\n\n 's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},\n\n 's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},\n\n 't3': {'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},\n\n 's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},\n\n 's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},\n\n 's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}},\n\n 'level2': {'t1': {'s1': {'col1': 5, 'col2': 4, 'col3': 9, 'col4': 9},\n\n 's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 5},\n\n 's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 13},\n\n 's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 20}},\n\n 't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9},\n\n 's2': {'col1': 1, 'col2': 5, 'col3': 4, 'col4': 8},\n\n 's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},\n\n 's4': {'col1': 5, 'col2': 4, 'col3': 4, 'col4': 9}},\n\n 't3': {'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},\n\n 's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},\n\n 's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},\n\n 's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}}}\n\n\n\n from nestednop import NestedNop\n\n nest=NestedNop(dictoriginal)\n\n for key, item in nest.iterable_flat.items():\n\n if item['get_value']() == 4 and key[-1] == 'col3':\n\n item['set_value'](400000000000000)\n\n\n\n updatediter = nest.get_updated_iterable()\n\n\n\n\n\n updatediter\n\n {'level1': {'t1': {'s1': {'col1': 5,\n\n 'col2': 4,\n\n 'col3': 400000000000000,\n\n 'col4': 9},\n\n 's2': {'col1': 1, 'col2': 5, 'col3': 400000000000000, 'col4': 8},\n\n 's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},\n\n 's4': {'col1': 5, 'col2': 4, 'col3': 400000000000000, 'col4': 9}},\n\n 't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 400000000000000, 'col4': 9},\n\n 's2': {'col1': 1, 'col2': 5, 'col3': 400000000000000, 'col4': 8},\n\n 's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},\n\n 's4': {'col1': 5, 'col2': 4, 'col3': 400000000000000, 'col4': 9}},\n\n 't3': {'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},\n\n 's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},\n\n 's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},\n\n 's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}},\n\n 'level2': {'t1': {'s1': {'col1': 5, 'col2': 4, 'col3': 9, 'col4': 9},\n\n 's2': {'col1': 1, 'col2': 5, 'col3': 400000000000000, 'col4': 5},\n\n 's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 13},\n\n 's4': {'col1': 5, 'col2': 4, 'col3': 400000000000000, 'col4': 20}},\n\n 't2': {'s1': {'col1': 5, 'col2': 4, 'col3': 400000000000000, 'col4': 9},\n\n 's2': {'col1': 1, 'col2': 5, 'col3': 400000000000000, 'col4': 8},\n\n 's3': {'col1': 11, 'col2': 8, 'col3': 2, 'col4': 9},\n\n 's4': {'col1': 5, 'col2': 4, 'col3': 400000000000000, 'col4': 9}},\n\n 't3': {'s1': {'col1': 1, 'col2': 2, 'col3': 3, 'col4': 4},\n\n 's2': {'col1': 5, 'col2': 6, 'col3': 7, 'col4': 8},\n\n 's3': {'col1': 9, 'col2': 10, 'col3': 11, 'col4': 12},\n\n 's4': {'col1': 13, 'col2': 14, 'col3': 15, 'col4': 16}}}}\n\n```\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Editing deeply nested dicts/lists becomes the easiest thing in the world...",
"version": "0.1",
"split_keywords": [
"list",
"dict",
"python",
"nested"
],
"urls": [
{
"comment_text": "",
"digests": {
"md5": "e59566f97e168f67d44aafd43582d558",
"sha256": "64183e486ee3ac4bf0350d26a0163986a4a73bb8d65b98ebc6f97c3e753c66a2"
},
"downloads": -1,
"filename": "nestednop-0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e59566f97e168f67d44aafd43582d558",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 6810,
"upload_time": "2022-10-13T02:40:56",
"upload_time_iso_8601": "2022-10-13T02:40:56.086695Z",
"url": "https://files.pythonhosted.org/packages/06/99/f98ec0bf31a3593d12878f46ed4fe56bf59beb2b92db4a4608ece398b747/nestednop-0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"md5": "b2d603395ae19fdb90a81917641daf48",
"sha256": "f98b6ec8575898255ed03b80794a03492f100689f3e21051f42d2f16033cea47"
},
"downloads": -1,
"filename": "nestednop-0.1.tar.gz",
"has_sig": false,
"md5_digest": "b2d603395ae19fdb90a81917641daf48",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 5730,
"upload_time": "2022-10-13T02:40:58",
"upload_time_iso_8601": "2022-10-13T02:40:58.492858Z",
"url": "https://files.pythonhosted.org/packages/df/5c/8c3505b8a8d11540e47e90a93631357ef6d6e7c1d1b8be0fcaef46317689/nestednop-0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-10-13 02:40:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "hansalemaos",
"github_project": "nestednop",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "cprinter",
"specs": []
},
{
"name": "flatten_any_dict_iterable_or_whatsoever",
"specs": []
},
{
"name": "useful_functions_easier_life",
"specs": []
}
],
"lcname": "nestednop"
}