针对 API 请求在 Power Query 中的 distinctList 上简单循环
simple for loop over a distinctList in Power Query for an API request
我不得不承认我的信心受到了打击。
我有一个列表,我使用 List.Distinct
函数从 table 推断出来。
我有一个 API 我需要调用,但需要获取一个 ID,该 ID 将来自 List.Distinct
输出。
所以我的问题是如何遍历 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
我建议让 API 调用它自己的函数。
例如,我将这个函数命名为 API
returns text for a given number:
(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"
这是它的样子:
如果您愿意,可以转换而不是添加列:
Table.TransformColumns(#"Converted to Table", {{"Column1", each API(_), type text}})
我不得不承认我的信心受到了打击。
我有一个列表,我使用 List.Distinct
函数从 table 推断出来。
我有一个 API 我需要调用,但需要获取一个 ID,该 ID 将来自 List.Distinct
输出。
所以我的问题是如何遍历 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
我建议让 API 调用它自己的函数。
例如,我将这个函数命名为 API
returns text for a given number:
(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"
这是它的样子:
如果您愿意,可以转换而不是添加列:
Table.TransformColumns(#"Converted to Table", {{"Column1", each API(_), type text}})