自定义GetTableFromAPI2函数批量处理多行数据时遇参数错误求助
问题修复方案
1. 修复自定义函数的语法错误
你的函数中URL = Record.Field("API")存在语法错误:Record.Field要求传入两个参数(目标记录+字段名),请根据你的实际场景二选一修改:
- 如果API地址是源表每行数据中的字段(比如你的表有
API列):URL = Record.Field(input, "API") - 如果API地址是固定的全局值:
URL = "https://你的内部API实际地址"
修复后的完整函数示例(以固定API地址为例):
(input as any, SUBSKEY as text, token as text) as table => let json = Record.Field(input,"JSON"), jsonBinary = Text.ToBinary(json), URL = "https://你的内部API实际地址", options = [Headers = [ #"Ocp-Apim-Subscription-Key"= SUBSKEY, #"Content-Type"="application/json", #"Authorization" = token ], Content = jsonBinary], WebContent = Web.Contents(URL, options), FormatAsJson = Json.Document(WebContent), ConvertToTable = Record.ToTable(FormatAsJson), TransposeTable = Table.Transpose(ConvertToTable), PromoteHeaders = Table.PromoteHeaders(TransposeTable,[PromoteAllScalars=true]) in PromoteHeaders
2. 批量调用函数的正确方式
使用Table.AddColumn对源表每行批量执行函数,示例代码:
Table.AddColumn(Source2, "API返回结果", each GetTableFromAPI2(_, SUBSKEY, OAuthCurrentKey))
执行后会新增一列存储每行对应的API返回表格,后续可通过Table.ExpandTableColumn将结果展开为具体列。
3. 单行测试的验证
修复函数后,重新执行= GetTableFromAPI2(Source2{0}, SUBSKEY, OAuthCurrentKey),即可正常返回对应行的API结果表格,不会再出现参数数量错误。
内容的提问来源于stack exchange,提问作者Les Z
相关产品推荐
相关产品推荐

