#json #database #powerbi #azure-cosmosdb #powerquery
Вопрос:
Я работаю с вложенным файлом json. Проблема в том, что ключи вложенного json являются датами, и их значение заранее неизвестно. Поэтому я не могу применить к нему метод expandRecordColumn.
Каждая строка имеет уникальный идентификатор и выглядит так
{
"refId" : "XYZ",
"snapshotIndexes" : {
"19-07-2021" : {
url: "abc1",
value: "123"
},
"20-07-2021" : {
url: "abc2",
value: "567"
}
}
}
Наконец-то мне нужна таблица с этими столбцами,
refid | date | url | value
XYZ | 19-7-2021 | abc1 | 123
XYZ | 20-7-2021 | abc2 | 567
PQR | 7-5-2021 | srt | 999
В новой таблице refId и дата вместе сделают уникальную запись.
Ответ №1:
Я смог решить эту проблему с помощью записи.Суммируется в каждой строке для преобразования из записи в таблицу, а затем применяется расширяемый столбец
let
Source = DocumentDB.Contents("sourceurl"),
Source = Source{[id="dbid"]}[Collections],
SourceTable= Source{[db_id="dbid",id="PartnerOfferSnapshots"]}[Documents],
ExpandedDocument = Table.ExpandRecordColumn(SourceTable, "Document", {"refId", "snapshotIndexes"}, {"Document.refId", "Document.snapshotIndexes"}),
TransformColumns = Table.TransformColumns(ExpandedDocument,{"Document.snapshotIndexes", each Table.ExpandRecordColumn(Record.ToTable(_), "Value", {"url","id","images"}, {"url","id","images"})}),
ExpandedTable = Table.ExpandTableColumn(TransformColumns, "Document.snapshotIndexes", {"Name","url","id","images"}, {"Document.dates","Document.url","Document.id","Document.images"})
in
ExpandedTable