基于数据创建 Power BI Web 查询 table
Create Power BI Web Query based on data table
我正在使用 Power BI Desktop 创建对堆栈溢出的 Web 查询 API。我想获取每个用户在堆栈溢出时提出的问题数量,这些问题是从 Power BI 中预先填充的 table 用户中提取的。
所以我想要这样的东西:
预先填充的用户:
- 6231494
- 用户 2
- 用户 3
Whosebug 问题:
- 6231494: 5
- 用户 2: 12
- 用户 3: 10
这是我在高级编辑器中的 Web 查询的当前代码:
let
Source = Json.Document(Web.Contents("http://api.stackexchange.com/2.2/users/6231494/answers?order=desc&sort=activity&site=Whosebug")),
items = Source[items],
#"Converted to Table" = Table.FromList(items, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"owner", "is_accepted", "score", "last_activity_date", "creation_date", "answer_id", "question_id"}, {"Column1.owner", "Column1.is_accepted", "Column1.score", "Column1.last_activity_date", "Column1.creation_date", "Column1.answer_id", "Column1.question_id"}),
#"Expanded Column1.owner" = Table.ExpandRecordColumn(#"Expanded Column1", "Column1.owner", {"reputation", "user_id", "user_type", "profile_image", "display_name", "link"}, {"Column1.owner.reputation", "Column1.owner.user_id", "Column1.owner.user_type", "Column1.owner.profile_image", "Column1.owner.display_name", "Column1.owner.link"})
in
#"Expanded Column1.owner"
我基本上需要一种方法来将当前硬编码 ID (6231494) 设置为等于来自我的预定义用户的 ID 列表 table
假设您有一个 Users
table 列 ID
作为数字:
您可以对 Questions
查询进行一些更改,以将其转换为 Power BI 中的自定义函数:
(id as number) =>
let
Source = Json.Document(Web.Contents("http://api.stackexchange.com/2.2/users/" & Text.From(id) & "/answers?order=desc&sort=activity&site=Whosebug")),
items = Source[items]
...
添加(id as number) =>
,将查询变成函数;
用户 ID 替换为 Text.From(id)
.
这里我将它重命名为 GetQuestions
以明确它是一个函数:
然后您可以添加自定义列来调用函数:
展开它,您将找到原始查询中的列:
并且您可以使用数据来获得您想要的结果(例如问题数量)。
我正在使用 Power BI Desktop 创建对堆栈溢出的 Web 查询 API。我想获取每个用户在堆栈溢出时提出的问题数量,这些问题是从 Power BI 中预先填充的 table 用户中提取的。
所以我想要这样的东西:
预先填充的用户:
- 6231494
- 用户 2
- 用户 3
Whosebug 问题:
- 6231494: 5
- 用户 2: 12
- 用户 3: 10
这是我在高级编辑器中的 Web 查询的当前代码:
let
Source = Json.Document(Web.Contents("http://api.stackexchange.com/2.2/users/6231494/answers?order=desc&sort=activity&site=Whosebug")),
items = Source[items],
#"Converted to Table" = Table.FromList(items, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"owner", "is_accepted", "score", "last_activity_date", "creation_date", "answer_id", "question_id"}, {"Column1.owner", "Column1.is_accepted", "Column1.score", "Column1.last_activity_date", "Column1.creation_date", "Column1.answer_id", "Column1.question_id"}),
#"Expanded Column1.owner" = Table.ExpandRecordColumn(#"Expanded Column1", "Column1.owner", {"reputation", "user_id", "user_type", "profile_image", "display_name", "link"}, {"Column1.owner.reputation", "Column1.owner.user_id", "Column1.owner.user_type", "Column1.owner.profile_image", "Column1.owner.display_name", "Column1.owner.link"})
in
#"Expanded Column1.owner"
我基本上需要一种方法来将当前硬编码 ID (6231494) 设置为等于来自我的预定义用户的 ID 列表 table
假设您有一个 Users
table 列 ID
作为数字:
您可以对 Questions
查询进行一些更改,以将其转换为 Power BI 中的自定义函数:
(id as number) =>
let
Source = Json.Document(Web.Contents("http://api.stackexchange.com/2.2/users/" & Text.From(id) & "/answers?order=desc&sort=activity&site=Whosebug")),
items = Source[items]
...
添加(id as number) =>
,将查询变成函数;
用户 ID 替换为 Text.From(id)
.
这里我将它重命名为 GetQuestions
以明确它是一个函数:
然后您可以添加自定义列来调用函数:
展开它,您将找到原始查询中的列:
并且您可以使用数据来获得您想要的结果(例如问题数量)。