我正在尝试将从 data.gov 中提取的 JSON 文件加载到 Power Query 中进行操作,但我不知道如何让 Power Query 将 JSON 文件转换为表格格式。
有没有办法将 JSON 转换为 Power Query 中的表,而无需编写自定义查询?
答案1
JSON 数据通常以“记录中的列表”的形式出现在“记录”中(以及其他变体)。您通常可以使用 PQ UI 来扩展这些对象,而无需编写代码。
以下是 JSON 端点的示例:http://api.nobelprize.org/v1/laureate.json
运行 PQ“从 Web”后,下一步是单击 PQ 功能区中的“记录工具/转换/转换为表格”按钮。
这将返回一行,第二列(值)包含一个列表。单击“值”旁边的展开按钮以展开列表。
这将返回多行,其中每个第二列(值)现在包含一条记录。展开记录以表格形式获取数据列。
请注意,此特定 JSON 布局还有更多深度 - 请参阅最右侧的 Value.prizes 列。具体步骤可能有所不同,具体取决于您的 JSON 输入和输出要求。
这是获取表格的完整代码 - 每个步骤都是通过单击 UI 生成的。
let
Source = Json.Document(Web.Contents("http://api.nobelprize.org/v1/laureate.json")),
#"Converted to Table" = Record.ToTable(Source),
#"Expanded Value" = Table.ExpandListColumn(#"Converted to Table", "Value"),
#"Expanded Value1" = Table.ExpandRecordColumn(#"Expanded Value", "Value",
{"id", "firstname", "surname", "born", "died", "bornCountry", "bornCountryCode",
"bornCity", "diedCountry", "diedCountryCode", "diedCity", "gender", "prizes"},
{"id", "firstname", "surname", "born", "died", "bornCountry", "bornCountryCode",
"bornCity", "diedCountry", "diedCountryCode", "diedCity", "gender", "prizes"})
in
#"Expanded Value1"