把一段 JSON 配置塞进环境变量,程序解析一直失败。
现象:打印出来看着正常,但 json.loads 报错。
原因:docker-compose.yml 里写的 config: ${MY_JSON},YAML 解析时把双引号处理掉了,或者 shell 里 export 时没加引号。
解法:
- compose 里用单引号包住整个值
- 或者干脆把 JSON 放文件,用挂载,环境变量只存路径
我现在一律选后者。环境变量适合放简单的键值,复杂结构放文件。用环境变量传 JSON 迟早出编码和转义问题,而且排查困难——日志里看着是对的,实际字节已经不一样了。
同类问题还有:密码里有 $ 符号被 shell 展开,连接串里的 & 被当成后台执行。
主楼- 暂无回复
继续逛逛