使用Azure管道导入JSON至数据库时小数数值转换报错求助
解决Azure管道导入JSON小数数值到Double字段的错误
问题核心分析
错误提示Column 'Longitude' contains an invalid value '',但你提供的JSON样本中Longitude是合法的数值类型,说明不是Azure无法识别JSON数值类型,问题出在JSON文件中存在部分数据的Longitude字段为空字符串,或完全缺失该字段,导致转换Double类型失败。
排查与解决步骤
检查JSON文件中的异常数据
遍历整个JSON文件,确认是否存在以下两种情况:- 字段值为空字符串:
"Longitude":"" - 完全缺失Longitude字段的条目
可以用本地工具批量校验,比如用jq命令筛选异常数据:
jq '.[] | select(.Longitude == "" or .Longitude == null)' your-json-file.json- 字段值为空字符串:
调整Azure管道的数据转换逻辑
如果确实存在空值/空字符串,在管道的转换环节添加处理规则:- 用
coalesce函数替换空值为默认值(比如0):coalesce(Longitude, 0) - 用
iif判断并转换:iif(Longitude == "", 0, toDouble(Longitude))
同时确保源数据集的JSON设置中勾选了**"Detect data type"**,让Azure自动识别数值类型。
- 用
验证字段映射配置
进入管道的字段映射界面,确认Longitude和Latitude的源数据类型被识别为Double,而非String。若识别错误,手动修改源类型为Double,避免格式转换异常。
内容的提问来源于stack exchange,提问作者davidmark
相关产品推荐
相关产品推荐

