Flattening a JSON Object Using Recursion in Python

preview_player
Показать описание
As part of our back-to-basic series Liz breaks down a real coding interview challenge she completed which landed her a job. This week’s problem uses recursion to flatten a JSON object in python.

The Challenge:
Write a function to flatten a JSON object with nested keys into a single level

Video Overview:
0:59 The problem
1:45 Example walkthrough
3:10 Coding a solution
18:30 Walking through with a debugger
23:03 Closing

Please subscribe to our channel!

If you have any recommendations for videos you’d like to see, please comment below.

Additional Resources:
Рекомендации по теме
Комментарии
Автор

This is the clearest coding tutorial I've ever seen in my life. Liz you are awesome. Very high quality step by step break down of the problem and solution.

samanthalee
Автор

Liz, I love you for this. You saved my life. I will watch all of your other videos. Thank you so much! I really appreciate it!

HakeemLawrence
Автор

One helluva good explanation! Please keep making videos

kjuarez
Автор

Here is the code that will work on all data structures

def run_on_dict(data):
for key, value in data.items():
if isinstance(value, dict):
run_on_dict(value)
elif isinstance(value, list):
for element in value:
if isinstance(element, (dict, list)):
run_on_dict(element)
else:
print(f"{key}: {element}")
else:
print(f"{key}: {value}")

m.e.k
Автор

Very clear. Very concise. First time I've come across your videos. How you have more of these. Thank you.

thisoldproperty
Автор

I think this solution may break down in the list section if the elements within the list are dicts? Need to test it though to be sure.

thndesmondsaid
Автор

Hey, what if we want to get back from flatten to json object?

idanqwe
Автор

That jacket of yours, that logo is cool! :)

Troglodyte
Автор

great explanation, thank you. what if you want the output in a tabular form

gboyegaabidoye
Автор

How do I take one key value pair based on some condition, like from ur example I want city in Canada that starts with M

rahimskmd
Автор

Nice tutorial, thanks!
Have you got any tips if I want to only output specific keys in the json object? (Parameterised as a list)

Eg json object:
obj = {'key1' :
{'key2':
{'key3': 'value1',
'key4': 'value2'
}
}
}

When caling the flatten function:
flatten_json( obj, ["key1.key2", "key3.key4"])

Desired output:
{
"key1.key2": "value1",
"key3.key5": "value3"
}

madmonk
Автор

where is the code? Please provide the link so that it can be test.

riz