【发布时间】:2020-05-12 11:37:48
【问题描述】:
我在 Excel 中有一个运行良好的 API 提要,但有时当 JSON API 提要中没有数据时,我会收到一个错误框,然后当 API 数据返回时停止 excel 提要工作。 我尝试了各种错误处理但没有成功(错误是“我们无法将 Record 类型的值转换为 List 类型” - 由于没有数据而导致)。任何帮助将不胜感激。
没有数据时的 API 馈送:
{"data" : [{}] }
当前代码:
let
Source = try Json.Document(Web.Contents("https://link.com/link.json"))
otherwise {"1","2","3"},
#"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), 1, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"cola", "colb", "colc"}),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded Column1",{{"Column1.cola", Int64.Type}, {"Column1.colb", Int64.Type}, {"Column1.colc", Int64.Type}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Column1.cola", "A"}, {"Column1.colb", "B"}, {"Column1.colc", "C"}})
in
#"Renamed Columns"
【问题讨论】:
-
我认为
try ... otherwise ...可能为时过早,因为Json.Document和Web.Contents可能不是发生错误的地方。错误可能发生在Table.FromList期间,因为它需要一个列表,但在没有数据时会给出记录。两个问题:#1 当没有数据时,您希望表格是什么样的? #2 有数据时,Feed 的响应是什么样的? (可以替换提要中的敏感/私人内容,这只是给出答案所需的结构。) -
另外,您可以使用
Table.FromRecords(而不是Table.FromList和Table.ExpandRecordColumn)。 -
感谢您的回复。
try ... otherwise ...'处理提要完全断开的时间,即网络连接断开。您是对的,问题是下一部分 - 已收到提要但不包含数据。我尝试了 FromRecords 但不幸的是仍然存在同样的问题。我可以再做一个try otherwise但没有成功如何处理othewise部分 -
当提要没有数据时,我只需要一个空表,即没有弹出错误消息。没有数据的提要是
{"data" : [{}] },收到的错误消息是“[Expression.Error] 我们无法将 Record 类型的值转换为 List 类型”。
标签: json excel api powerquery