I am looking to create a simple nested “lookup” mechanism in python, and wanted to make sure there wasn’t already something somewhere hidden in the vast libraries in python that doesn’t already do this before creating it.
I am looking to take a dict that is formatted something like this
my_dict = {
"root": {
"secondary": {
"user1": {
"name": "jim",
"age": 24
},
"user2": {
"name": "fred",
"age": 25
}
}
}
}
and I am trying to have a way to access the data by using a decimal notation that would be something similar to
root.secondary.user2
and return that resulting dict back as a response. I am thinking that there must be something that does this and I could write one without much difficulty but I want to make sure I am not recreating something I might be missing from the documentation. Thanks
There’s nothing in the standard library for this purpose, but it is rather easy to code this yourself:
This exploits the fact that the look-up for the key
kin the dictionarydcan be written asdict.get(d, k). Applying this iteratively usingreduce()leads to the desired result.Edit: For completeness three functions to get, set or delete dictionary keys using this method: