내용으로 건너뛰기
Out of the Box
사용자 도구
로그인
사이트 도구
검색
도구
문서 보기
이전 판
Fold/unfold all
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
추적:
python:dict
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Python: Dict ====== * nested dict to flatten dict <code python> import pandas as pd d = {'a': 1, 'c': {'a': 2, 'b': {'x': 5, 'y' : 10}}, 'd': [1, 2, 3]} df = pd.json_normalize(d, sep='.') print(df.to_dict(orient='records')[0]) # https://stackoverflow.com/questions/6027558/flatten-nested-dictionaries-compressing-keys </code> * nested dict to object <code python> from types import SimpleNamespace import json class Config(SimpleNamespace): def __init__(self, config_dict): super().__init__(**config_dict) def dict2obj(d): return json.loads(json.dumps(d), object_hook=Config) config_dict = {'a': 1, 'b': {'c': 2}, 'd': ['hi', {'foo': 'bar'}]} config = dict2obj(config_dict) print(config.a) # https://stackoverflow.com/questions/1305532/convert-nested-python-dict-to-object </code> * nested dict to namedtuple <code python> from collections import namedtuple def make_config(cfg): if isinstance(cfg, dict): return make_config_dict(cfg) elif isinstance(cfg, list): return make_config_list(cfg) else: raise NotImplementedError() def make_config_dict(cfg): Config = namedtuple('Config', cfg.keys()) values = list() for value in cfg.values(): if isinstance(value, dict): value = make_config_dict(value) elif isinstance(value, list): value = make_config_list(value) values.append(value) return Config(*values) def make_config_list(cfg): values = list() for value in cfg: if isinstance(value, dict): value = make_config_dict(value) elif isinstance(value, list): value = make_config_list(value) values.append(value) return values config_dict = {'a': 1, 'b': {'c': 2}, 'd': ['hi', {'foo': 'bar'}]} config = make_config(config_dict) print(config) </code> {{tag>python dict}}
python/dict.txt
· 마지막으로 수정됨: 2024/03/23 02:42 저자
127.0.0.1
문서 도구
문서 보기
이전 판
역링크
Fold/unfold all
맨 위로