{"id":23635,"library":"dotted-dict","title":"DottedDict","description":"DottedDict is a dict subclass that allows accessing nested keys using dot notation (e.g., d.key.subkey). Currently at version 1.1.3. Release cadence is irregular; last update was in 2020.","status":"active","version":"1.1.3","language":"python","source_language":"en","source_url":"https://github.com/josh-paul/dotted_dict","tags":["dict","dot-notation","nested"],"install":[{"cmd":"pip install dotted-dict","lang":"bash","label":"Install via pip"}],"dependencies":[],"imports":[{"note":"The class is capitalized 'DottedDict'","wrong":"from dotted_dict import dotted_dict","symbol":"DottedDict","correct":"from dotted_dict import DottedDict"}],"quickstart":{"code":"from dotted_dict import DottedDict\n\nd = DottedDict({'a': {'b': 'value'}})\nprint(d.a.b)  # output: value","lang":"python","description":"Creates a DottedDict from a nested dict and accesses nested keys with dot notation."},"warnings":[{"fix":"Use d['new']['key'] = 'value' or pre-initialize the nested structure.","message":"DottedDict does not support dot notation assignment for creating new nested keys (e.g., d.new.key = 'value' will raise KeyError because intermediate keys are not auto-created).","severity":"gotcha","affected_versions":"all"},{"fix":"Access these methods via d.keys() (works on the object) but be aware that nested DottedDicts also override them; use dict(d['inner']).keys() if needed.","message":"DottedDict overrides __getattr__ to mimic dict keys, so attributes like d.keys, d.items, d.values are lost. Use d.keys() only on the DottedDict itself; nested DottedDicts also override these.","severity":"gotcha","affected_versions":"all"},{"fix":"Use DottedDict with nested structures; for lists, you must manually convert each element.","message":"DottedDict does not convert non-dict values to DottedDict. Only nested dicts are converted. Lists of dicts remain plain dicts.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'1.1.3':20 '2020':29 'access':9 'allow':8 'cadenc':22 'current':17 'd.key.subkey':16 'dict':5,30 'dot':13,32 'dot-not':31 'dotteddict':1,2 'e.g':15 'irregular':24 'key':11 'last':25 'nest':10,34 'notat':14,33 'releas':21 'subclass':6 'updat':26 'use':12 'version':19","created_at":"2026-05-01T08:08:48.635335+00:00","updated_at":"2026-05-01T08:08:48.635335+00:00","problems":[{"fix":"Set using standard dict assignment: d['new'] = DottedDict({'key': 'value'})","cause":"DottedDict does not auto-create intermediate keys on dot assignment.","error":"KeyError: 'key' when trying to set d.new.key = 'value'"},{"fix":"Ensure nested values are DottedDict or use dict() conversion: dict(d['inner']).items()","cause":"Accessing .items() on the DottedDict itself works but on nested ones? Actually it doesn't - nested DottedDict does have items method, but the error may occur if the nested value is not a DottedDict.","error":"AttributeError: 'DottedDict' object has no attribute 'items'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"1.1.3","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/josh-paul/dotted_dict","docs":null,"changelog":null,"pypi":"https://pypi.org/project/dotted-dict/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["data","serialization"],"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}}