trace-dkey
Python library to trace path of a particular key inside a nested dict
Installation
- For stable version
- pip install trace-dkey
- For developement
- git clone https://github.com/Agent-Hellboy/trace-dkey
- cd trace-dkey
- python -m venv .venv
- source .venv/bin/activate
Example
you can use the library as python3 -m trace_dkey --file=test.json --key=name
, test.json is
a json file containing name as key
>>> from trace_dkey import trace
>>> l={'a':{'b':{'c':{'d':{'e':{'f':1}}}}}}
>>> print(trace(l,'f'))
[['a', 'b', 'c', 'd', 'e', 'f']]
Now you can query it as l['a']['b']['c']['d']['e']['f']
>>> l['a']['b']['c']['d']['e']['f']
1
refer Tests_. for other examples
General Info
- The value returned by the trace function is an array of paths, where each path is an array of dictionary keys.
- Because of that, the library can be used in a practical way by taking advantage of this format.
- In the example below we use the returned path to iterate over the dictionary keys and print the key value:
from trace_dkey import trace l={'a':{'b':{'c':{'d':{'e':{'f':1}}}}}} paths = trace(l,'f') for path in paths: dic = l for key in path: dic = dic[key] print(dic)
- This is addressing a wide range of question asked on stackoverflow about key inside a nested dict
- Atleast 13 duplicate questions can be found on stackoverflow
- This can be tracked on https://you.com/search?q=find%20key%20in%20nested%20dictionary%20python
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.