def flatten_dict(d: dict) -> dict: out = {} def flatten(x, name: str = ''): 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(d) return out # Apply the function to each row employees_flat = [flatten_dict(emp) for emp in employees] pp.pprint(employees_flat)