In [1]:
import pandas as pd
In [2]:
l_simple = [{'name': 'Alice', 'age': 25},
{'name': 'Bob'}]
In [3]:
print(pd.DataFrame(l_simple))
In [4]:
print(pd.io.json.json_normalize(l_simple))
In [5]:
l_nested = [{'name': 'Alice', 'age': 25, 'id': {'x': 2, 'y': 8}},
{'name': 'Bob', 'id': {'x': 10, 'y': 4}}]
In [6]:
print(pd.DataFrame(l_nested))
In [7]:
print(pd.io.json.json_normalize(l_nested))
In [8]:
print(pd.io.json.json_normalize(l_nested, sep='_'))
In [9]:
l_complex = [{'label': 'X',
'info' : {'n': 'nx', 'm': 'mx'},
'data': [{'a': 1, 'b': 2},
{'a': 3, 'b': 4}]},
{'label': 'Y',
'info' : {'n': 'ny', 'm': 'my'},
'data': [{'a': 10, 'b': 20},
{'a': 30, 'b': 40}]}]
In [10]:
print(pd.io.json.json_normalize(l_complex))
In [11]:
print(pd.io.json.json_normalize(l_complex, record_path='data'))
In [12]:
print(pd.io.json.json_normalize(l_complex, record_path='data', record_prefix='data_'))
In [13]:
print(pd.io.json.json_normalize(l_complex, record_path='data',
meta='label'))
In [14]:
print(pd.io.json.json_normalize(l_complex, record_path='data',
meta='label', meta_prefix='meta_'))
In [15]:
print(pd.io.json.json_normalize(l_complex, record_path='data',
meta='info'))
In [16]:
print(pd.io.json.json_normalize(l_complex, record_path='data',
meta=[['info', 'n'], ['info', 'm']]))
In [17]:
print(pd.io.json.json_normalize(l_complex, record_path='data',
meta=[['info', 'n'], ['info', 'm']],
sep='_'))
In [18]:
print(pd.io.json.json_normalize(l_complex, record_path='data',
meta=['label', ['info', 'n'], ['info', 'm']],
sep='_'))
In [19]:
print(pd.io.json.json_normalize(l_complex, record_path='data',
meta=[['info', 'n']]))
In [20]:
# print(pd.io.json.json_normalize(l_complex, record_path='data',
# meta=['info', 'n']))
# KeyError: "Try running with errors='ignore' as key 'n' is not always present"