Excel Power Query:如何将所有列表项合并为单行

时间:2016-10-27 19:27:37

标签: powerquery

我从'16 Excel Power Query查询来自Microsoft的Cognitive text keyphase API - 从推文中获取关键字。工作正常。

但是,每个查询返回的JSON文档由Power Query转换为〜1-5行的列表。

对于pic,我希望返回的所有响应都在一个单元格/行中,而不管返回的项目数量。

List result

如果您有兴趣,这是我的完整M查询(您需要输入自己的密钥)。

让     TweetCognitive =(TweetID为文本,TweetText为文本)=> 让     JsonRecords = Text.FromBinary(Json.FromValue([id = TweetID,text = TweetText])),     JsonRequest =“{”“documents”“:[”& JsonRecords& “]}”,     JsonContent = Text.ToBinary(JsonRequest,TextEncoding.Ascii),     回复=         Web.Contents( “https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/keyPhrases?”,             [                 标题= [#“Ocp-Apim-Subscription-Key”=“yourkeyhere”,                            #“Content-Type”=“application / json”,Accept =“application / json”],                        内容= JsonContent             ]),     JsonResponse = Json.Document(回复,1252) 在     JsonResponse 在     TweetCognitive

1 个答案:

答案 0 :(得分:0)

您可以使用List.Accumulate将值列表转换为单个值。例如,这会将列表中的值组合成单个文本值,其中“。”分隔每行的值:

List.Accumulate(JsonResponse, "", (state, current) => state & current & ". ")

这会在您的示例中生成"monday frank love happiness today. nice good kind. tomorrow. "。如果您想摆脱尾随空格,可以使用List.Accumulate包围Text.Trim表达式。