простой для l oop по отдельному списку в Power Query для запроса API - PullRequest
2 голосов
/ 27 мая 2020

Я должен признать, что моя уверенность в этом подорвала.

У меня есть единственный список, который я экстраполирую из таблицы с функцией List.Distinct.

У меня есть API, который мне нужно вызвать, но мне нужно получить идентификатор, который будет получен из вывода List.Distinct.

, поэтому мой вопрос в том, как я могу l oop поверх моего distinct_list и передать его в качестве параметра в мой запрос в вызове api.

в псевдокоде это будет:

distinct_table = unique(table[id])
empty_list = []
for each_id in distinct_table[List]:
    j = JsonDocument("www.apicall.com?peopleid=each_id")
    empty_list.append(j)

Пока код.

let
    distinct_list = List.Distinct(Projects[project_id])

    Source = Json.Document(Web.Contents("https://api.random.com",
                                                    [
                                                       RelativePath="/v3/logged-tasks",
                                                       Headers = [mytoken],
                                                       query = [
                                                       person_id = (each row from distinct_list)],
   #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error)





in 
    Source

1 Ответ

2 голосов
/ 27 мая 2020

Я бы рекомендовал сделать так, чтобы API вызывал свою собственную функцию.

Например, эта функция, которую я назвал API, возвращает текст для заданного числа:

(n as number) as text =>
let
    Source = Text.FromBinary(Web.Contents("http://numbersapi.com/"&Text.From(n)&"/math"))
in
    Source

Теперь мы можем вызывать эту функцию в других запросах. Например:

let
    distinct_list = {3,6,12},
    #"Converted to Table" = Table.FromList(distinct_list, Splitter.SplitByNothing()),
    #"Added Custom" = Table.AddColumn(#"Converted to Table", "API", each API([Column1]))
in
    #"Added Custom"

Вот как это выглядит:

Screenshot

Если вы можете преобразовать вместо добавления столбца, если вы предпочитаю:

Table.TransformColumns(#"Converted to Table", {{"Column1", each API(_), type text}})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...