我希望在将从JSON中的API获得的数据转换为Power BI的Power Query中的表时提供一些支持.

In the image, the result of the API query has a list type return

在转换为表时,我注意到列1有ID,但接下来的3列每行都有一个"数据列表".

After expanding the list

在展开新列时,我看到ID号重复了几次,到目前为止还可以

Expanding the Power column

问题是,当我展开下一列时,数据不是按行引用的.风速和功率数据正在重复,但日期不同.

Expanding all columns

对于每个ID,我们有一个不同的数据、WIND_SPEED和POWER数据集.在JSON中,我可以看到每个ID中的数据被正确分隔.我的问题是关于在Power BI中将数据转换为Power Query.

以下是Power Query中的完整查询代码:

let
    // Definir os dados JSON
    json = [
        api_token = "cb8551da59dbdf91be8371df4a03dddb",
        power_source = "wind",
        id = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40},
        variables = {"wind_speed", "power"},
        end_date = "20240601",
        integration = "daily"
    ],

    // Converter o JSON em uma string JSON formatada
    jsonString = Text.FromBinary(Json.FromValue(json)),

    // Definir a URL
    url = "https://api.tempook.com/geracao/v1/forecast/multiforecast/range/integration",

    // Obter os dados da API usando o método POST
    response = Web.Contents(
        url,
        [
            Headers = [
                #"Content-Type"="application/json"
            ],
            Content = Text.ToBinary(jsonString),
            ManualStatusHandling={405}
        ]
    ),

    // Converter a resposta JSON em uma tabela
    jsonResponse = Json.Document(response),
    #"Convertido para Tabela" = Record.ToTable(jsonResponse),
    Value = #"Convertido para Tabela"{0}[Value],
    #"Convertido para Tabela1" = Table.FromList(Value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Column1 Expandido" = Table.ExpandRecordColumn(#"Convertido para Tabela1", "Column1", {"id", "power", "wind_speed", "times"}, {"Column1.id", "Column1.power", "Column1.wind_speed", "Column1.times"}),
    #"Column1.power Expandido" = Table.ExpandListColumn(#"Column1 Expandido", "Column1.power"),
    #"Column1.wind_speed Expandido" = Table.ExpandListColumn(#"Column1.power Expandido", "Column1.wind_speed"),
    #"Column1.times Expandido" = Table.ExpandListColumn(#"Column1.wind_speed Expandido", "Column1.times")
in
    #"Column1.times Expandido"

Convert power query table

我try 使用Power BI中Power Query自己的函数将数据转换为表,但在执行此操作时似乎丢失了一些内容.

推荐答案

try 将这些数据列合并到一个表中,然后展开

let
   [...]
    // Converter a resposta JSON em uma tabela
    jsonResponse = Json.Document(response),
    #"Convertido para Tabela" = Record.ToTable(jsonResponse),
    Value = Table.FromRecords(List.Transform(#"Convertido para Tabela"{0}[Value], each [id = [id], data = Table.FromColumns({[power], [wind_speed], [times]}, {"power", "wind_speed", "times"})])),
    #"Expanded data" = Table.ExpandTableColumn(Value, "data", {"power", "wind_speed", "times"}, {"power", "wind_speed", "times"})
in
    #"Expanded data"

Json相关问答推荐

如何抓住引号之间的第二次出现?

PowerShell:将Invoke-WebRequest与变量一起使用

如何创建可由Gin序列化到json的排序键值映射?

如何在PowerShell中访问嵌套的JSON字段

使用JQ将JSON输出转换为CSV复杂 struct

如何对未知/变量键的字典进行编码?

爆炸没有数组的 struct pyspark

使用 jq 和脚本 bash 映射两个 json

将具有多个级别的 json 读入 DataFrame [python]

阅读 JSON 正文 Firebase 云函数

从 JSON 响应中获取最新版本发布字段

如何为所有 API 端点全局设置 http.ResponseWriter Content-Type 标头?

SyntaxError:Object.parse(本机)AngularJS中的意外标记o

Jackson Json:如何将数组转换为 JsonNode 和 ObjectNode?

了解 JSON Schema 草稿版本 4 中的additionalProperties关键字

Android JSON 库的性能和可用性比较

字符串的 Gson 数组到 JsonArray

使用 ajax 将 JSON 发送到 PHP

严重:找不到媒体类型 = 应用程序/json、类型 = 类 com.jersey.jaxb.Todo、通用类型 = 类 com.jersey.jaxb.Todo 的 MessageBodyWriter

强制 JSON.NET 在序列化 DateTime 时包含毫秒(即使 ms 组件为零)