Flatten Json to Relational Dataframe
- Install
pip install json-flattening
- Parameters
json_data: Input data to be flattend, should be dict or list of dict
list_split_to_many: If the final node list data should be splitted to one to many relation(i.e to multiple rows)
ignore_parent_key: Parent Keys to be ignored should be string or list
filter_parent_key: Parent Keys only to be considered should be string or list,if none of key specified is in data,will return empty dataframe
- Flatten json
from json_flattening import json_flatten
data = [{
"firstName": "Rack",
"lastName": "Jackon",
"gender": "man",
"age": 24,
"address": {
"streetAddress": "126",
"city": "San Jone",
"state": "CA",
"postalCode": "394221"
},
"phoneNumbers": [
{ "type": "home", "number": "7383627627" }
]
},
{
"firstName": "rock",
"lastName": "Jackon",
"gender": "man",
"age": 24,
"address": {
"streetAddress": "126",
"city": "San Jone",
"postalCode": "394221"
},
"phoneNumbers": [
{ "type": "home", "number": "7383627627" }
]
}]
flatten_data = json_flatten(data)
firstName |
lastName |
gender |
age |
address_state |
address_streetAddress |
address_postalCode |
address_city |
phoneNumbers_type |
phoneNumbers_number |
Rack |
Jackon |
man |
24 |
CA |
126 |
394221 |
San Jone |
home |
7383627627 |
rock |
Jackon |
man |
24 |
NaN |
126 |
394221 |
San Jone |
home |
7383627627 |
- With ignore parent Key
flatten_data = json_flatten(data,ignore_parent_key=['phoneNumbers','age'])
firstName |
lastName |
gender |
address_state |
address_streetAddress |
address_postalCode |
address_city |
Rack |
Jackon |
man |
CA |
126 |
394221 |
San Jone |
rock |
Jackon |
man |
NaN |
126 |
394221 |
San Jone |