Convert nested dict to ordered dict on Python
다음과 같이 충첩된 dict 가 있다고 할때,
dict_ = {
'a': 1,
'b': [2, 3, 4],
'c': {
'd': 5
},
'd': '6789'
}
ordered dict 로 변환하기 위해서는 다음과 같이 재귀 함수를 만들어서 변환할 수 있다.
from collections import OrderedDict
def to_ordereddict(item):
od = OrderedDict()
for k, v in sorted(item.items()):
if isinstance(v, dict):
od[k] = to_ordereddict(v)
else:
od[k] = v
return od
결과는 다음과 같다.
>>> dict_ = {
... 'a': 1,
... 'b': [2, 3, 4],
... 'c': {
... 'd': 5
... },
... 'd': '6789'
... }
>>> odict_ = to_ordereddict(dict_)
>>> odict_
OrderedDict([('a', 1), ('b', [2, 3, 4]), ('c', OrderedDict([('d', 5)])), ('d', '6789')])
괜찮죠? (¬‿¬)