I have a dictionary like this where some of the values are "None" and others are keys in the same dictionary
group = {
"Duties & Taxes": "Current Liabilities",
"Excise": "Duties & Taxes",
"Bank Accounts": "Current Assets",
"Branch / Divisions": "None",
"Capital Account": "None",
"Cash-in-hand": "Current Assets",
"Current Assets": "None",
"Current Capital Account": "Capital Account",
"Current Liabilities": "None",
"CWIP": "None",
"Deposits (Asset)": "Current Assets",
"Direct Expenses": "None",
"Direct Incomes": "None",
"GST": "Duties & Taxes"
}
I want to replace all the values that are not "None" to something like this:
{
"Duties & Taxes": "Current Liabilities",
"Excise": "Current Liabilities",
"Bank Accounts": "Current Assets",
"Branch / Divisions": "None",
"Capital Account": "None",
"Cash-in-hand": "Current Assets",
"Current Assets": "None",
"Current Capital Account": "Capital Account",
"Current Liabilities": "None",
"CWIP": "None",
"Deposits (Asset)": "Current Assets",
"Direct Expenses": "None",
"Direct Incomes": "None",
"GST": "Current Liabilities"
}
What I have tried:
I was not able to do this recursively.
This is the code that works if the depth is less than 6.
def get_up(group):
# print(group)
if group_dict[group] == "None":
return group
if group_dict[group_dict[group]] == "None":
return group_dict[group]
if group_dict[group_dict[group_dict[group]]] == "None":
return group_dict[group_dict[group]]
if group_dict[group_dict[group_dict[group_dict[group]]]] == "None":
return group_dict[group_dict[group_dict[group]]]
if group_dict[group_dict[group_dict[group_dict[group_dict[group]]]]] == "None":
return group_dict[group_dict[group_dict[group_dict[group]]]]
if group_dict[group_dict[group_dict[group_dict[group_dict[group_dict[group]]]]]] == "None":
return group_dict[group_dict[group_dict[group_dict[group_dict[group]]]]]
else:
return group_dict[group_dict[group_dict[group_dict[group_dict[group]]]]]