Формат JSON в PowerBI

77
7

Я хочу показать данные из infuxDB на PowerBI через конечную точку HTTP API. следующим является JSON, который я получаю от Influx при ударе по URL-адресу

     {
"results": [
{
"statement_id": 0,
"series": [
{
"name": "cpu",
"columns": [
"time",
"value"
],
"values": [
[
"2018-09-13T11:03:57.1175792Z",
0.64
],
[
"2018-09-13T11:09:58.2259457Z",
100
]
]
}
]
}
]
}

когда я пытаюсь создать таблицу из нее в PowerBI. он показывает все столбцы в строке. вот изображение, которое я получил до сих пор

PS: Я не могу изменить JSON

enter image description here

спросил(а) 2021-01-25T17:28:51+03:00 5 месяцев назад
1
Решение
77

Получил ответ от сообщества Power bi. вот ссылка.

и это запрос.

let
Source = Json.Document(File.Contents("C:\Users\xxxx\Desktop\generated.json")),
#"Converted to Table" = Record.ToTable(Source),
#"Expanded Value" = Table.ExpandListColumn(#"Converted to Table", "Value"),
#"Expanded Value2" = Table.ExpandRecordColumn(#"Expanded Value", "Value", {"statement_id", "series"}, {"Value.statement_id", "Value.series"}),
#"Expanded Value.series" = Table.ExpandListColumn(#"Expanded Value2", "Value.series"),
#"Expanded Value.series1" = Table.ExpandRecordColumn(#"Expanded Value.series", "Value.series", {"name", "columns", "values"}, {"Value.series.name", "Value.series.columns", "Value.series.values"}),
#"Expanded Value.series.columns" = Table.ExpandListColumn(#"Expanded Value.series1", "Value.series.columns"),
#"Expanded Value.series.values" = Table.ExpandListColumn(#"Expanded Value.series.columns", "Value.series.values"),
#"Expanded Value.series.values1" = Table.ExpandListColumn(#"Expanded Value.series.values", "Value.series.values"),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Value.series.values1",{"Value.series.name", "Value.statement_id", "Name"}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Removed Columns", "Value.series.columns", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Value.series.columns.1", "Value.series.columns.2"}),
#"Removed Columns1" = Table.RemoveColumns(#"Split Column by Delimiter",{"Value.series.columns.2"}),
#"Added Custom" = Table.AddColumn(#"Removed Columns1", "Value.custom", each if [Value.series.columns.1]="time" and Value.Is([Value.series.values],Int64.Type) then null else if [Value.series.columns.1]="value" and not Value.Is([Value.series.values],Int64.Type) then null else [Value.series.values]),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each [Value.custom] <> null),
#"Removed Columns2" = Table.RemoveColumns(#"Filtered Rows",{"Value.series.values"}),
#"Grouped Rows" = Table.Group(#"Removed Columns2", {"Value.series.columns.1"}, {{"all data", each Table.AddIndexColumn(_, "Index",1,1),type table}}),
#"Expanded all data" = Table.ExpandTableColumn(#"Grouped Rows", "all data", {"Value.custom", "Index"}, {"all data.Value.custom", "all data.Index"}),
#"Pivoted Column" = Table.Pivot(#"Expanded all data", List.Distinct(#"Expanded all data"[Value.series.columns.1]), "Value.series.columns.1", "all data.Value.custom"),
#"Renamed Columns" = Table.RenameColumns(#"Pivoted Column",{{"all data.Index", "Index"}})
in
#"Renamed Columns"

ответил(а) 2021-01-25T17:28:51+03:00 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема