Power Query:从包含许多引号的长字符串中提取包含引号的子字符串

时间:2018-05-21 23:48:44

标签: escaping powerbi powerquery m

{"c": "4343434", "d": "m", "k": "+la+la", "l": "40990", "m": "b", "n": "o",
"p": "{adposition}", "s": "b", "dm": "{devicemodel}", "adc": "{creative}", 
"adg": "454554545454", "src": "hahahah45", "tid": "kwd-utututututu", 
"utm_term": "+ka +ka", "utm_medium": "cpc"}

我正在尝试将部分"s":"b"提取到Power Query查询中的新列中。我知道这归结为逃避,我已经阅读了M公式语言的官方文档,但我只是不知道如何使用文本公式来提取它。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您可以使用Json.Document来解析Json。

let
    Source = "{""c"": ""4343434"", ""d"": ""m"", ""k"": ""+la+la"", ""l"": ""40990"", ""m"": ""b"", ""n"": ""o"", ""p"": ""{adposition}"", ""s"": ""b"", ""dm"": ""{devicemodel}"", ""adc"": ""{creative}"", ""adg"": ""454554545454"", ""src"": ""hahahah45"", ""tid"": ""kwd-utututututu"", ""utm_term"": ""+ka +ka"", ""utm_medium"": ""cpc""}",
    Result = Json.Document(Source)[s]
in
    Result

答案 1 :(得分:0)

@ShiYang需要关键功能。

如果您的表中有一个名为Text的列,其中每行都有文章中的文字,那么您可以编写一个自定义列,使用以下公式提取属于s的值:

= Json.Document([Text])[s]

这将获取[Text]列中的文本并将其作为JSON读取并提取s组件。

完整步骤代码如下所示:

= Table.AddColumn(#"Preveious Step", "Custom", each Json.Document([Text])[s])