select
parse_json('{"fullName":"Niks",
"age":15,
"address": {
"areaCode":"1234",
},
"state": NaN ,
"movies": [
{"name":"Iron Man","budget":"$150M","producer":"Avi"},
{"name":"Sherlock Holmes","budget":"$200M","producer":"Joel Silver"},]}');
在解析雪花中具有 NaN 值的 JSON 时遇到问题。它说无效的 JSON,因此我们无法正确解析或使用 JSON 函数,尤其是在操作时。
目前,我们尝试过
当 x = 'NaN' 时为 NULL,否则 x 结束。
但这只是解决问题的临时方法。有没有其他方法/雪花功能可以帮助我。 ?
注意:我尝试过 try_parse_json,但问题仍然存在。
最佳答案
您的 JSON 数据无效,只需检查任何 JSON 验证器,它就会抛出错误,并且其行为与屏幕截图中显示的行为相同。您的 json 文档有以下错误
修复逗号和引号后的有效 json。
create
or replace table vartab (n number(2), v variant);
insert into
vartab
select
column1 as n,
parse_json(column2) as v
from
values
(
1,
'{
"fullName":"Niks",
"age":15,
"address":{
"areaCode":"1234"
},
"state":"NaN",
"movies":[
{
"name":"Iron Man",
"budget":"$150M",
"producer":"Avi"
},
{
"name":"Sherlock Holmes",
"budget":"$200M",
"producer":"Joel Silver"
}
]
}'
) as vals;
Select
*,
v:state
from
vartab;
关于snowflake-cloud-data-platform - 当 Parse_Json 尝试解析 "NaN"值时给出无效值,该值是 pandas datafram 中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71253781/