def nested_json_row(dict_data): out = pd.Series() for k,v in dict_data.items(): if type(v) == dict: out_child = nested_json_row(v) out_child.index = k + '_' + out_child.index out = out.append(out_child) elif type(v) == list: for idx,it in enumerate(v): out_child = nested_json_row(it) out_child.index = f"{k}_{idx}_" + out_child.index out = out.append(out_child) else: out[k] = v return out