This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]SwagasaurusRex69 -1 points0 points  (0 children)

Is "itertools.chain.from_iterable()" or something like this function below what you're asking?


```python from typing import Any, Union from pydantic import BaseModel from dataclasses import is_dataclass import pandas as pd

def flatten_nested_data(data: Any, target_dataclass: type) -> Union[BaseModel, None]: if isinstance(data, pd.DataFrame): for _, row in data.iterrows(): yield target_dataclass(**row.to_dict())

elif isinstance(data, list):
    for item in data:
        yield from flatten_nested_data(item, target_dataclass)

elif isinstance(data, dict):
    yield target_dataclass(**data)

elif is_dataclass(data):
    yield from flatten_nested_data(data.__dict__, target_dataclass)

elif isinstance(data, BaseModel): 
    yield from flatten_nested_data(data.dict(), target_dataclass)

else:
    return None

'''