Получить таблицу ключей карты визуальной карты формы JSON в Power BI - PullRequest
0 голосов
/ 28 октября 2019

Есть ли какой-нибудь простой способ получить таблицу ключей карты визуальной формы карты? Я хотел бы получить ключи карты в виде таблицы Power Query. Лучше всего было бы извлечь его из файла JSON, из которого была импортирована карта.

Загрузить файл: NZ.json

enter image description here

Ответы [ 2 ]

1 голос
/ 28 октября 2019

Разверните объекты и геометрию в редакторе запросов, преобразуйте в таблицу и разверните столбец properties:

let
    Source = Json.Document(File.Contents("C:\Users\aolson\Downloads\NZ.json")),
    objects = Source[objects],
    gadm36_NZL_1 = objects[gadm36_NZL_1],
    geometries = gadm36_NZL_1[geometries],
    ConvertToTable = Table.FromList(geometries, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    ExpandColumn = Table.ExpandRecordColumn(ConvertToTable, "Column1", {"properties"}, {"properties"}),
    ExpandProperties = Table.ExpandRecordColumn(ExpandColumn, "properties", {"GID_0", "NAME_0", "GID_1", "NAME_1", "VARNAME_1", "NL_NAME_1", "TYPE_1", "ENGTYPE_1", "CC_1", "HASC_1"}, {"GID_0", "NAME_0", "GID_1", "NAME_1", "VARNAME_1", "NL_NAME_1", "TYPE_1", "ENGTYPE_1", "CC_1", "HASC_1"})
in
    ExpandProperties

Если вы хотите, чтобы он был немного более динамичным, заменитеодна ExpandProperties строка формулы с этими двумя:

ColumnNames = Record.FieldNames(ExpandColumn[properties]{0}),
ExpandProperties = Table.ExpandRecordColumn(ExpandColumn, "properties", ColumnNames, ColumnNames)
0 голосов
/ 28 октября 2019

Расширяя принятый ответ Алексея, я бы хотел пойти еще динамичнее. Путь к файлу является единственной переменной.

let
    Source = Json.Document(File.Contents("C:\NZ.json")),
    #"Converted to Table" = Record.ToTable(Source),
    Value1 = #"Converted to Table"{3}[Value],
    #"Converted to Table1" = Record.ToTable(Value1),
    Value2 = #"Converted to Table1"{0}[Value],
    geometries = Value2[geometries],
    #"Converted to Table2" = Table.FromList(geometries, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table2", "Column1", {"arcs", "type", "properties"}, {"arcs", "type", "properties"}),
    #"Removed Other Columns" = Table.SelectColumns(#"Expanded Column1",{"properties"}),
    ColumnNames = Record.FieldNames(#"Removed Other Columns"[properties]{0}),
    ExpandProperties = Table.ExpandRecordColumn(#"Removed Other Columns", "properties", ColumnNames, ColumnNames)
in 
    ExpandProperties
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...