我有一个如下的 Excel 电子表格:
第一列是某事物的名称,然后是两列“日期”和“所有者”。我还有以下 JSON 文件,我想通过“获取数据”->“来自文件”->“来自 JSON”导入该文件,以便从 JSON 文件中的数据自动填充空列。
JSON 文件内容:
{
"TEST-1": {
"date": 2,
"owner": "Alfred"
},
"TEST-2": {
"date": 4,
"owner": "Berta"
},
"TEST-3": {
"date": 6,
"owner": "Cesar"
},
"TEST-42": {
"date": 84,
"owner": "Dave"
},
}
最后我想要的 Excel 表格如下所示:
但我不知道如何使用“Power Query”来实现这一点。有什么想法吗?有教程吗?有简单的解释吗?
答案1
您可以通过 3 个部分来实现它。
A. 第 1 部分
- 选择范围。转到数据 -> 获取数据 -> 从表/范围。选择我的表有标题。单击确定。
- Power 查询编辑器打开。关闭并保存。
B. 第 2 部分
- 转到数据 -> 获取数据 -> 来自文件 -> 来自 JSON。这将是输出
- 转到转换 -> 转入表格
- 单击“值”旁边的箭头。选择要显示的项目。单击“确定”。
- 下图就是结果。右键单击列标题,选择“重命名”以更改列名称。这将是输出。关闭并保存。
C. 第 3 部分
- 转到数据 -> 获取数据 -> 合并查询 -> 合并
- 当 Power Query 编辑器打开时,设置第一个表,然后将 json 文件中的数据设置为第二个表。从两个表中选择将作为合并基础的列。在“连接类型”列表框中,选择“左外层(全部来自第一个,匹配来自第二个)”
- 展开最后一列的箭头。选择必须显示值的列,然后单击“确定”。
这就是结果。
- 删除不必要的列并重命名(如有必要)其他列。
- 关闭并保存。
答案2
我有一个日志文件,其中每一行都是一个独立的 json 对象,但必须将整个文件括在“[”(第一行前缀)和“]”(最后一行后缀)中,并在每一行(最后一行除外)后附加一个“,”以有效地创建一个数组,以便运行 json 导入。是否有选项可以将每一行/行视为单独的 json 对象?
每个 json 行中的某些字段本身就是一个数组,但我希望将它们拆分成新列而不是新行。当我尝试替代方法并指定分隔符(即“:”)时,它会为每一行显示“错误”。有没有办法将此类数组扩展为新列,以便导入到结果表中的数据仍然每行输入(日志)有 1 行?