2016-07-14 2 views
1

Я пытаюсь извлечь данные из API в power bi, используя язык формулы запроса мощности.Как передать объект запроса в строку запроса в языке формулы Power Query

Мой код:

let 
obj= "{ ""dataset"": ""mydataset"",""queries"": [ { ""type"": ""single_measurement"", ""measure"": { ""aggregator"": ""unique_count"", ""column"": ""visitor_id"" } } ], ""start"":1451638800000,""end"":1468430640000,""max_groups"":1000,""group_by"":[""extrhike""]}", 
authKey = "Token js+JG/FaGiZcFZPVAsAXmN+d20000", 
url = "https:// myhostaddress.cloudapp.azure.com/api/v1/query?query=obj", 

GetJson = Json.Document(Web.Contents(url,[Headers = [#"Authorization"=authKey, #"Content-Type"="application/json"]])) 

in 
GetJson 

Я хочу, чтобы передать объект запроса данных (объект) в виде строки запроса, как следующий

https://myhostaddress.cloudapp.azure.com/api/v1/query?query={ "dataset": "mydataset","queries": [ { "type": "single_measurement", "measure": { "aggregator": "unique_count", "column": "visitor_id" } } ], "start":1451638800000,"end":1468430640000,"max_groups":1000,"group_by":["extrhike"]} 

Я не могу передать OBJ как значение строки запроса в power query. Я получаю следующую ошибку:

DataFormat.Error: Invalid URI: The hostname could not be parsed. 
Details: 
https:// myhostaddress.cloudapp.azure.com/api/v1/query?query=obj 

Как передать объект запроса (obj) в качестве запроса stri ng в языке формулы запроса мощности.

Заранее спасибо

+0

Вы уверены, что ваши данные могут быть отправлены как GET? Может быть, ПОСТ? –

ответ

0

Вам нужно добавить строки вместе. Он должен быть url = "https:// myhostaddress.cloudapp.azure.com/api/v1/query?query=" & obj,.

1

Вы пробовали передать свои параметры запроса с помощью аргумента Query в Web.Contents?

Для например

let 
    Url = "https:// myhostaddress.cloudapp.azure.com" 
    Request = Json.Document(Web.Contents(url, 
              [Headers = 
                 [#"Authorization"=authKey, 
                 #"Content-Type"="application/json"], 
              RelativePath = "/api/v1/query", 
              Query = [ 
                 <insert record here of your query object> 
                ] 
              ] 

Пример записи запроса может быть:

Query = [#"Argument 1" = "Foo", #"Argument 2" = "Bar", limit = "1000", skip="500"] 

Вы можете прочитать о возможностях здесь: https://msdn.microsoft.com/en-us/library/mt260892.aspx

0

пытающимися использовать эту

Это POST-контент вместо запроса GETting

let 
    obj = "{ ""dataset"": ""mydataset"",""queries"": [ { ""type"": ""single_measurement"", ""measure"": { ""aggregator"": ""unique_count"", ""column"": ""visitor_id"" } } ], ""start"":1451638800000,""end"":1468430640000,""max_groups"":1000,""group_by"":[""extrhike""]}", 
    authKey = "Token js+JG/FaGiZcFZPVAsAXmN+d20000", 
    url = "https:// myhostaddress.cloudapp.azure.com/api/v1/query", 

    GetJson = Json.Document(Web.Contents(url,[ 
     Headers = [#"Authorization"=authKey, #"Content-Type"="application/json"], 
     Content = Text.ToBinary(obj) 
    ])) 
in 
    GetJson 
0

Вы также можете использовать этот

Он сбегает OBJ в процентах струне и дописывает параметр «запрос»

let 
    obj= "{ ""dataset"": ""mydataset"",""queries"": [ { ""type"": ""single_measurement"", ""measure"": { ""aggregator"": ""unique_count"", ""column"": ""visitor_id"" } } ], ""start"":1451638800000,""end"":1468430640000,""max_groups"":1000,""group_by"":[""extrhike""]}", 
    authKey = "Token js+JG/FaGiZcFZPVAsAXmN+d20000", 
    url = "https:// myhostaddress.cloudapp.azure.com/api/v1/query?query="&Uri.EscapeDataString(obj), 

    GetJson = Json.Document(Web.Contents(url,[Headers = [#"Authorization"=authKey, #"Content-Type"="application/json"]])) 
in 
    GetJson 

 Смежные вопросы

  • Нет связанных вопросов^_^