7

Я пытаюсь загрузить файл JSON, который я извлек из data.gov, в Power Query для манипуляции, но я не могу понять, как заставить Power Query преобразовать файл JSON в табличный формат.

Есть ли способ преобразовать JSON в таблицу в Power Query без написания пользовательского запроса?

1 ответ1

7

Данные JSON часто отображаются в виде записей в списках внутри записей (и других вариантов). Обычно вы можете использовать PQ UI для расширения этих объектов без написания кода.

Вот пример конечной точки JSON: http://api.nobelprize.org/v1/laureate.json

После запуска PQ "Из Интернета" следующим шагом является нажатие кнопки «Инструменты записи / Преобразовать / В таблицу» на ленте PQ.

Это возвращает единственную строку со вторым столбцом (Значение), содержащим Список. Нажмите кнопку "Развернуть" рядом с "Значение", чтобы развернуть список.

Это возвращает несколько строк, причем каждый второй столбец (значение) теперь содержит запись. Разверните запись, чтобы получить столбцы данных в табличном формате.

Обратите внимание, что в этом конкретном макете JSON больше глубины - см. Столбец Value.prizes справа. Ваши точные шаги могут отличаться, в зависимости от вашего ввода JSON и ваших требований вывода.

Вот полный код для доступа к таблице - каждый шаг был сгенерирован нажатием на пользовательский интерфейс.

let
    Source = Json.Document(Web.Contents("http://api.nobelprize.org/v1/laureate.json")),
    #"Converted to Table" = Record.ToTable(Source),
    #"Expanded Value" = Table.ExpandListColumn(#"Converted to Table", "Value"),
    #"Expanded Value1" = Table.ExpandRecordColumn(#"Expanded Value", "Value", 
        {"id", "firstname", "surname", "born", "died", "bornCountry", "bornCountryCode", 
         "bornCity", "diedCountry", "diedCountryCode", "diedCity", "gender", "prizes"},
        {"id", "firstname", "surname", "born", "died", "bornCountry", "bornCountryCode",
         "bornCity", "diedCountry", "diedCountryCode", "diedCity", "gender", "prizes"})
in
    #"Expanded Value1"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .