首页 > 解决方案 > 将 json 列表记录转换为 PowerBI 中的表值

问题描述

我对 Power BI 完全陌生,所以我尝试了不同的方法将我的 JSON 文件转换为表格,但到目前为止没有成功。

{
    "Family": [
        {
            "Father": "F1",
            "Age": 50,
            "Mother": "M1",
            "MAge": 49,
            "Children": [
                {
                    "Name": "C1"
                },
                {
                    "Name": "C2"
                }
            ]
        },
        {
            "Father": "F2",
            "Age": 55,
            "Mother": "M2",
            "MAge": 53,
            "Children": [
                {
                    "Name": "Cc1"
                },
                {
                    "Name": "Cc2"
                }
            ]
        }
    ]
}

我正在尝试将其转换为下表

Father    Age      Mother    MAge
F1         50        M1        49

F2         55        M2        53

我试过像转换表和转置一样不起作用我总是得到一个错误

Expression.Error:我们无法将 Record 类型的值转换为类型

标签: jsonpowerbipowerbi-desktop

解决方案


让我为那些不想使用 Power BI 用户界面(桌面/Web)编写 Power Query 和 jsut 的人分享一个分步指南。

  1. 打开 Power BI 桌面

  2. 获取数据更多 ... → 从列表中选择JSON并单击连接(您也可以使用 WEB API 或其他为您提供 JSON 数据的来源)

  3. 选择 JSON 文件并打开它。

  4. 在数据面板中,您会看到 Family|List。单击列表链接以添加导航步骤。

  5. 在“转换”选项卡中,单击“到表” ,然后从对话框中单击“确定” 。

  6. 从“Column1”的标题中,单击展开列按钮展开列以展开列,然后从菜单中取消选中使用原始列名作为前缀并选中您想要的列,然后单击确定。

  7. 您将看到表格格式的列和数据。您可以通过单击数据类型按钮更改列的数据类型更改数据类型

最后你会得到这样的东西:

power bi 将 json 数据转换为表格

最后,如果您想查看生成的查询,请单击高级编辑器按钮并查看代码:

let
    Source = Json.Document(File.Contents("C:\Users\rag\Desktop\data.json")),
    Family = Source[Family],
    #"Converted to Table" = Table.FromList(Family, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"Father", "Age", "Mother", "MAge"}, {"Father", "Age", "Mother", "MAge"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Expanded Column1",{{"Age", type number}, {"MAge", type number}})
in
    #"Changed Type"

更多信息:


推荐阅读