파이썬(Python)&판다스(Pandas)&Polars

[Python] JSON의 모든 key, value를 재귀적으로 탐색해서 데이터프레임으로 만들기

송채채 2024. 4. 24. 20:38
import json
import pandas as pd


def flatten_json(d, parent_key="", results=[]):
    """
    JSON 또는 딕셔너리 데이터를 평평한 구조로 변환하고, 키-값 쌍을 데이터프레임으로 저장합니다.

    Args:
        d (dict or json): JSON 또는 딕셔너리 데이터
        parent_key (str): 상위 키 (재귀 호출 시 사용)
        results (list): 데이터프레임에 저장될 결과 목록

    Returns:
        pandas.DataFrame: 키-값 쌍을 포함하는 데이터프레임
    """

    if isinstance(d, dict):
        for k, v in d.items():
            new_key = parent_key + "." + k if parent_key else k
            flatten_json(v, new_key, results)
            results.append([new_key, v])
    elif isinstance(d, list):
        for item in d:
            flatten_json(item, parent_key, results)
    return pd.DataFrame(results, columns=["key", "value"])
반응형