New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ndicts

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ndicts

Class to handle nested dictionaries

  • 0.3.0
  • PyPI
  • Socket score

Maintainers
1

Description

Nested dictionary structures emerge every time there is some sort hierarchy in the data. Trees, archives, the chapters and sections in a book, these are all examples where you will likely find nested loops of data.

Python does not have a built-in data type for nested mappings. Dictionaries can be used, however there many inconveniences and limitations. Two above all: getting items requires to open and close several square brackets (eg. d[level1][level2]...[levelN]), and iterating will only access the first layer, so nested for loops are needed to iterate through all the values.

The ndicts package aims to tackle the main issues of nested dictionaries, exposing an interface with minimum differences from dictionaries themselves. NestedDict is a MutableMapping at its core, therefore all familiar dictionary methods are available and the overall behaviour similar.

If you need to perform simple mathematical operations with your nested data, use DataDict. In addition to allowing arithmetics, DataDicts borrow some methods that you would expect from a pandas DataFrame.

Finally, this is a simple project for simple needs. Consider using pandas MultiIndex for more functionalities!

Installation

Install ndicts with pip.

pip install ndicts

Overview

Import NestedDict and DataDict.

>>> from ndicts import DataDict, NestedDict

Create a NestedDict from a dictionary.

>>> book = {
...     "Book 1": {
...         "Section 1": "The Eve of the War",
...         "Section 2": "The Falling Star"
...     },
...     "Book 2": {
...         "Section 1": "Under Foot", 
...         "Section 2": {"Paragraph 1": "After eating we crept back to the scullery"}
...     }
... }
>>> nd = NestedDict(book)

Get items more conveniently than with standard dictionaries.

>>> # NestedDict
>>> nd["Book 1", "Section 1"] 
'The Eve of the War'
>>> # dict
>>> book["Book 1"]["Section 2"]
'The Falling Star'

Iterate over a NestedDict.

>>> for key in nd:
...     print(key)
('Book 1', 'Section 1')
('Book 1', 'Section 2')
('Book 2', 'Section 1')
('Book 2', 'Section 2', 'Paragraph 1')

Documentation

https://edd313.github.io/ndicts/

Licence

ndicts is licensed under the MIT license.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc