Заказанный словарь упорядоченных словарей необходимо преобразовать в словарь словарей
У меня есть набор данных, который может иметь n уровень упорядоченного словаря упорядоченных словарей. Теперь мне нужно преобразовать все из них в обычные словари. Есть ли более простой способ сделать, кроме рекурсивного поиска и преобразования.
from collections import OrderedDict
an=OrderedDict([('method', 'constant'), ('data', '1.225')])
aw=OrderedDict([('method', 'constant'), ('data', OrderedDict([('1.225','777')]))])
print dict(an)
print dict(aw)
{'data': '1.225', 'method': 'constant'}
{'data': OrderedDict([('1.225', '777')]), 'method': 'constant'}
1 ответ
Решение
Возможно нет. Вы можете заключить свой рекурсивный алгоритм в функцию:
from collections import OrderedDict
def ordered_to_regular_dict(d):
if isinstance(d, OrderedDict):
d = {k: ordered_to_regular_dict(v) for k, v in d.items()}
return d
aw = OrderedDict([('method', 'constant'), ('data', OrderedDict([('1.225','777')]))])
res = ordered_to_regular_dict(aw)
# {'data': {'1.225': '777'}, 'method': 'constant'}