Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Перевод Dictionary в таблицу, Как преобразовать словарь в таблицу на листе
 
Уважаемые коллеги, вечер добрый.
Помогите пожалуйста с преобразованием словаря в обычную таблицу на листе.
Источник данных:
Веб сервис - POST запрос - получаю JSON.
его я могу распарсить в R и ручками привести к таблице (муторно и лень),
распарсил в KNIME, перевел в XML, далее через XPATH (не совсем удобно для конечного пользователя - нужно делать веб морду)
Хочу в excel.

Сам источник представляет собой 18 столбцов-списков, по одному документу/записи  могут быть 5 значений в списке номер 3 и 7 значений в списке 8 и т.д.
глубина списка динамическая величина.

Огромное спасибо EducatedFool за совет на просторах форума по считыванию ResponseBodyвместо RespinseText для борьбы с кодировкой.
Получил в excel JSON, распарсил его через CDataset.xlsm (уже обсуждался на форуме) - на выходе Dictionary с child.

Есть ли способ перечислить в строку все значения каждого списка, с учетом иерархии??
Т. е если для какого-то ключа встречается вложенный словарь - то он выводится в новые строчки, а названия ключей вложенного словаря в название столбцов.

пример JSON {Имя:Иванов; Фамилия : Петров; Любимый цвет : {цвет1:красный; цвет2:синий}
аля словарь
                     Имя: Иванов
                     Фамилия: Петров
                     Любимый цвет
                     Любимый цвет - child(1) цвет1 = красный
                     Любимый цвет - child(2) цвет2 = синий

Как хочу
Имя       Фамилия  Любимый цвет
Иванов Петров       красный
                                синий

Прошу прощения, может быть непонятно объяснил, давно к vba не подступал - забыл уж многое.
 
а обязательно именно VBA? на Power Query несколько кликов...

На VBA можно так:
бегаем циклом по ключам, определяем максимальную глубину вложенных словарей через child.Count, затем создаем массив от (1 To .Count, 1 To MaxLevel)
Бегаем еще раз по ключам, сам ключ в (i,1), значение ключа в (i,2), если встретили вложенный словарь - вместо значения верхнего словаря добавляем в строку i значения вложенного словаря.
Под конец транспонируем и на лист.
F1 творит чудеса
Страницы: 1
Читают тему (гостей: 1)
Наверх