Skip to content

_unpack_payload()

Class: JobsAustriaCacheSynchronizer
File: jobs_austria_cache_synchronizer.py ยท line 135

Expands the data_payload JSON column into individual columns.

Signature

Parameters df
Returns not annotated
Async No
Visibility Private

Implementation

def _unpack_payload(self, df: pd.DataFrame) -> pd.DataFrame:
    """Expands the data_payload JSON column into individual columns."""
    def parse(x):
        if pd.isna(x) or x == "":
            return {}
        try:
            return json.loads(x) if isinstance(x, str) else x
        except (json.JSONDecodeError, TypeError):
            return {}

    payloads = df['data_payload'].apply(parse).tolist()
    df_payload = pd.DataFrame(payloads, index=df.index)
    return pd.concat([df.drop(columns=['data_payload']), df_payload], axis=1)