You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks中named_struct处理值内反斜杠的异常及处理方法

在Databricks的named_struct中保留JSON格式的转义斜杠\/

针对你需要得到{"test": "DE844\/374"}的需求,以下是正确处理方式及原因分析:

问题根源

  • 尝试a中,"DE844\/374"在SQL字符串字面量里会被解析为DE844/374,反斜杠被当作转义符直接处理,因此JSON输出时显示未转义的斜杠。
  • 尝试b中,"DE844\\/374"会被解析为字符串DE844\/374,JSON序列化时会把字符串里的反斜杠再次转义,最终输出DE844\\/374。

正确解决方案

如果你需要的是JSON输出中将斜杠转义为\/(实际存储的字符串值为DE844/374,仅在JSON序列化时做转义处理),使用to_json函数并开启escape_slash选项:

SELECT to_json(named_struct('test', 'DE844/374'), map('escape_slash', 'true'));

执行后返回结果:

{"test":"DE844\/374"}

如果你的实际需求是存储的字符串本身包含\和/(即值为DE844\/374),则需在SQL字符串中用双反斜杠表示单个反斜杠,但此时JSON输出会显示\\/:

SELECT named_struct('test', 'DE844\\/374');

返回结果:

{"test": "DE844\\/374"}

内容的提问来源于stack exchange,提问作者user14372101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 10:27:57