Created
November 26, 2019 04:16
-
-
Save fadziljusri/a1e6a3883efc7741ce1a30f87bb445ab to your computer and use it in GitHub Desktop.
Flatten JSON object with nested keys into a single level.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def flatten_json(nested_json): | |
""" | |
Flatten json object with nested keys into a single level. | |
Args: | |
nested_json: A nested json object. | |
Returns: | |
The flattened json object if successful, None otherwise. | |
Eg: | |
{"a" : {"b": "c"}} => {"a.b": "c"} | |
""" | |
out = {} | |
def flatten(x, name=''): | |
if type(x) is dict: | |
for a in x: | |
flatten(x[a], name + a + '.') | |
# elif type(x) is list: | |
# i = 0 | |
# for a in x: | |
# flatten(a, name + str(i) + '.') | |
# i += 1 | |
else: | |
out[name[:-1]] = x | |
flatten(nested_json) | |
return out |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment