{"id":24104,"library":"ndicts","title":"ndicts","description":"ndicts provides a nested dictionary class (ndict) that supports dot-notation access and manipulation of nested structures. Version 0.3.0 is the latest, targeting Python 3.8+. Release cadence is sporadic.","status":"active","version":"0.3.0","language":"python","source_language":"en","source_url":"https://github.com/edd313/ndicts","tags":["nested-dict","dot-notation","dict-utils"],"install":[{"cmd":"pip install ndicts","lang":"bash","label":"PyPI"}],"dependencies":[],"imports":[{"note":"Wrong submodule path; NestedDict is exported from the top-level package.","wrong":"from ndicts.ndict import NestedDict","symbol":"NestedDict","correct":"from ndicts import NestedDict"}],"quickstart":{"code":"from ndicts import NestedDict\nnd = NestedDict({'a': {'b': 1}})\nprint(nd['a.b'])  # access via dot notation\nnd['a.c'] = 2\nprint(nd.to_dict())","lang":"python","description":"Create a NestedDict, access and set values with dot-notation keys, and convert back to a plain dict."},"warnings":[{"fix":"Use bracket access with tuple keys or set a custom delimiter via NestedDict(delimiter='|').","message":"Dot notation keys like 'a.b' will be split on dots. If your actual keys contain dots, use a different delimiter or avoid dot-notation access.","severity":"gotcha","affected_versions":"all"},{"fix":"Use Python 3.7+ or wrap in OrderedDict if necessary.","message":"NestedDict does not preserve insertion order in Python <3.7 (though Python 3.8+ does). Relying on order may break in older Python versions if backporting.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'0.3.0':21 '3.8':27 'access':14 'cadenc':29 'class':7 'dict':34,39 'dict-util':38 'dictionari':6 'dot':12,36 'dot-not':11,35 'latest':24 'manipul':16 'ndict':1,2,8 'nest':5,18,33 'nested-dict':32 'notat':13,37 'provid':3 'python':26 'releas':28 'sporad':31 'structur':19 'support':10 'target':25 'util':40 'version':20","created_at":"2026-05-01T08:11:18.912475+00:00","updated_at":"2026-05-01T08:11:18.912475+00:00","problems":[{"fix":"Use tuple keys like ('a', 'b') or check the key exists with 'in'.","cause":"Using dot notation on a NestedDict that doesn't have nested keys, or the key is ambiguous because a key literally contains a dot.","error":"KeyError: 'a.b'"},{"fix":"Upgrade to latest: pip install --upgrade ndicts. On older versions use dict(nd) or nd.flat().","cause":"Calling to_dict() on older version before 0.3.0; method may be named differently or not exist.","error":"AttributeError: 'NestedDict' object has no attribute 'to_dict'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.3.0","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/edd313/ndicts","docs":"https://edd313.github.io/ndicts/","changelog":null,"pypi":"https://pypi.org/project/ndicts/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["serialization","database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-29","last_verified":"2026-06-29","next_check":"2026-07-29","install_tag":null}}