This is my flattened dictionary:
d={"QR": "", "Customer Details": "",
"feature prompt": "something", "chain": "lee", "store": "levis"}
I want output as a nested dictionary; each empty string value represents the beginning of a new dictionary. Desired output:
{
"QR": {
"Customer Details": {
"feature prompt": "something",
"chain": "lee",
"store": "levis"
}
}
}
My code:
d={"QR": "", "Customer Details": "",
"feature prompt": "something", "chain": "lee", "store": "levis"}
def nest_dict(d):
result={}
for k,v in d.items():
split(k,v,result)
#print(k)
#print(v)
return result
def split(k,v,out):
if v=='':
split(k,v,out.setdefault(k,{}))
else:
out[k]=v
nest_dict(d)
However, this gives me a RecursionError
:
Traceback (most recent call last):
File "/Users/asmita/so_test/test.py", line 18, in <module>
print(nest_dict(d))
File "/Users/asmita/so_test/test.py", line 7, in nest_dict
split(k,v,result)
File "/Users/asmita/so_test/test.py", line 14, in split
split(k,v,out.setdefault(k,{}))
File "/Users/asmita/so_test/test.py", line 14, in split
split(k,v,out.setdefault(k,{}))
File "/Users/asmita/so_test/test.py", line 14, in split
split(k,v,out.setdefault(k,{}))
[Previous line repeated 994 more times]
File "/Users/asmita/so_test/test.py", line 13, in split
if v=='':
RecursionError: maximum recursion depth exceeded in comparison