当有一个包含可选字段的json对象列表时,我在弄清楚如何避免遗漏整行错误时遇到了一点麻烦,就像这个例子:
let
Source = Json.Document("[
{ ""name"": ""Peter"", ""age"": 42, ""email"": ""something""},
{ ""name"": ""Peter"", ""age"": 42 }]"),
Tabled = Table.FromRecords(Source)
in
Tabled
这在第二行给了我一个很大的错误:
# | name | age | email |
--------------------------------
1 | Peter | 42 | something |
2 | Error | Error | Error |
Expression.Error: The field 'email' of the record wasn't found.
Details:
name=Peter
age=42
但我真的不想让它“忽略”这一点,所以我得到了这样的结果:
# | name | age | email |
--------------------------------
1 | Peter | 42 | something |
2 | Peter | 42 | |
3条答案
按热度按时间9cbw7uwe1#
好的,所以设法找到了一个解决方案,这是确定的,现在在我的情况下,虽然我认为一个更好的肯定可以作出,因为它是有点粗糙...
从而产生
(null应用于图纸时消失)
理想情况下,需要更少“代码”的东西将是理想的,但目前这将是可行的。
如果有人有更好的解决方案,请随时分享>.<
nzk0hqpo2#
Table.FromRecords()
在缺少字段时停止解析,使用Table.FromList()
代替。试试下面,你可以用展开菜单生成table2代码。
hkmswyz63#
Table.FromRecords有一个可选的
missingField
参数,可用于选择如何处理丢失的字段。MissingField.Type的选项包括:MissingField。错误,MissingField.Ignore
,MissingField.UseNull
。要将缺少的字段设置为空,请执行以下操作:
请注意中间的额外null,因为您还必须将
columns
参数设置为null。