Power Query M 为导入的每个嵌套记录添加行 json
Power Query M add rows for each nested record from imported json
我有一些 json 数据,我正尝试使用 power 查询将其导入 excel,但没有成功:
json 看起来像这样:
{
"User1@g.com": {
"2019-03-14T15:23:03": {
"Message": "A message (1)",
"Timestamp": "2019-03-14T15:23:03.5042800+01:00"
},
"2019-03-15T14:38:34": {
"Message": "A message (2)",
"Timestamp": "2019-03-15T14:38:34.3995690+01:00"
}
},
"user2@g.com": {
"2018-11-02T17:02:19": {
"Message": "A message (3)",
"Timestamp": "2018-11-02T17:02:19.8146010+01:00"
},
"2019-04-03T09:31:53": {
"Message": "A message (4)",
"Timestamp": "2019-04-03T09:31:53.7216810+02:00"
},
"2019-04-03T09:43:46": {
"Message": "A message (5)",
"Timestamp": "2019-04-03T09:43:46.2697460+02:00"
}
},
"user3@g.com": {
"2018-11-10T11:03:52": {
"Message": "A message (6)",
"Timestamp": "2018-11-10T11:03:52.4458880+01:00"
},
"2019-02-27T17:08:02": {
"Message": "A message (7)",
"Timestamp": "2019-02-27T17:08:02.4327310+01:00"
}
}
}
我希望输出如下所示 table:
User message TimeStamp
User1@g.com A message (1) 2019-03-15T14:38:34.3995690+01:00
User1@g.com A message (2) 2019-03-15T14:38:34.3995690+01:00
user2@g.com A message (3) 2018-11-02T17:02:19.8146010+01:00
user2@g.com A message (4) 2019-04-03T09:31:53.7216810+02:00
user2@g.com A message (5) 2019-04-03T09:43:46.2697460+02:00
user3@g.com A message (6) 2018-11-10T11:03:52.4458880+01:00
user3@g.com A message (7) 2019-02-27T17:08:02.4327310+01:00
当我导入 json 时,我有用户电子邮件列 + 包含记录的列
向下钻取一条记录显示
深入研究这条记录终于有了消息
我已经尝试了很多东西,似乎可以选择连接,但需要 table,而不是记录。
如有任何帮助,我们将不胜感激!
在扩展之前只转换值列:
let
Source = Json.Document("{
""User1@g.com"": {
""2019-03-14T15:23:03"": {
""Message"": ""A message (1)"",
""Timestamp"": ""2019-03-14T15:23:03.5042800+01:00""
},
""2019-03-15T14:38:34"": {
""Message"": ""A message (2)"",
""Timestamp"": ""2019-03-15T14:38:34.3995690+01:00""
}
},
""user2@g.com"": {
""2018-11-02T17:02:19"": {
""Message"": ""A message (3)"",
""Timestamp"": ""2018-11-02T17:02:19.8146010+01:00""
},
""2019-04-03T09:31:53"": {
""Message"": ""A message (4)"",
""Timestamp"": ""2019-04-03T09:31:53.7216810+02:00""
},
""2019-04-03T09:43:46"": {
""Message"": ""A message (5)"",
""Timestamp"": ""2019-04-03T09:43:46.2697460+02:00""
}
},
""user3@g.com"": {
""2018-11-10T11:03:52"": {
""Message"": ""A message (6)"",
""Timestamp"": ""2018-11-10T11:03:52.4458880+01:00""
},
""2019-02-27T17:08:02"": {
""Message"": ""A message (7)"",
""Timestamp"": ""2019-02-27T17:08:02.4327310+01:00""
}
}
}
"),
toTable = Record.ToTable(Source),
transform = Table.TransformColumns(toTable, {"Value", each Table.FromRecords(Record.FieldValues(_))}),
expand = Table.ExpandTableColumn(transform, "Value", {"Message", "Timestamp"})
in
expand
我有一些 json 数据,我正尝试使用 power 查询将其导入 excel,但没有成功:
json 看起来像这样:
{
"User1@g.com": {
"2019-03-14T15:23:03": {
"Message": "A message (1)",
"Timestamp": "2019-03-14T15:23:03.5042800+01:00"
},
"2019-03-15T14:38:34": {
"Message": "A message (2)",
"Timestamp": "2019-03-15T14:38:34.3995690+01:00"
}
},
"user2@g.com": {
"2018-11-02T17:02:19": {
"Message": "A message (3)",
"Timestamp": "2018-11-02T17:02:19.8146010+01:00"
},
"2019-04-03T09:31:53": {
"Message": "A message (4)",
"Timestamp": "2019-04-03T09:31:53.7216810+02:00"
},
"2019-04-03T09:43:46": {
"Message": "A message (5)",
"Timestamp": "2019-04-03T09:43:46.2697460+02:00"
}
},
"user3@g.com": {
"2018-11-10T11:03:52": {
"Message": "A message (6)",
"Timestamp": "2018-11-10T11:03:52.4458880+01:00"
},
"2019-02-27T17:08:02": {
"Message": "A message (7)",
"Timestamp": "2019-02-27T17:08:02.4327310+01:00"
}
}
}
我希望输出如下所示 table:
User message TimeStamp
User1@g.com A message (1) 2019-03-15T14:38:34.3995690+01:00
User1@g.com A message (2) 2019-03-15T14:38:34.3995690+01:00
user2@g.com A message (3) 2018-11-02T17:02:19.8146010+01:00
user2@g.com A message (4) 2019-04-03T09:31:53.7216810+02:00
user2@g.com A message (5) 2019-04-03T09:43:46.2697460+02:00
user3@g.com A message (6) 2018-11-10T11:03:52.4458880+01:00
user3@g.com A message (7) 2019-02-27T17:08:02.4327310+01:00
当我导入 json 时,我有用户电子邮件列 + 包含记录的列
向下钻取一条记录显示
深入研究这条记录终于有了消息
我已经尝试了很多东西,似乎可以选择连接,但需要 table,而不是记录。
如有任何帮助,我们将不胜感激!
在扩展之前只转换值列:
let
Source = Json.Document("{
""User1@g.com"": {
""2019-03-14T15:23:03"": {
""Message"": ""A message (1)"",
""Timestamp"": ""2019-03-14T15:23:03.5042800+01:00""
},
""2019-03-15T14:38:34"": {
""Message"": ""A message (2)"",
""Timestamp"": ""2019-03-15T14:38:34.3995690+01:00""
}
},
""user2@g.com"": {
""2018-11-02T17:02:19"": {
""Message"": ""A message (3)"",
""Timestamp"": ""2018-11-02T17:02:19.8146010+01:00""
},
""2019-04-03T09:31:53"": {
""Message"": ""A message (4)"",
""Timestamp"": ""2019-04-03T09:31:53.7216810+02:00""
},
""2019-04-03T09:43:46"": {
""Message"": ""A message (5)"",
""Timestamp"": ""2019-04-03T09:43:46.2697460+02:00""
}
},
""user3@g.com"": {
""2018-11-10T11:03:52"": {
""Message"": ""A message (6)"",
""Timestamp"": ""2018-11-10T11:03:52.4458880+01:00""
},
""2019-02-27T17:08:02"": {
""Message"": ""A message (7)"",
""Timestamp"": ""2019-02-27T17:08:02.4327310+01:00""
}
}
}
"),
toTable = Record.ToTable(Source),
transform = Table.TransformColumns(toTable, {"Value", each Table.FromRecords(Record.FieldValues(_))}),
expand = Table.ExpandTableColumn(transform, "Value", {"Message", "Timestamp"})
in
expand