背景

因公司接口组装请求参数的方式为 XML,当拿到请求参数后需要把 XML 格式转换为 JSON,这里使用的是 xmltodict 第三方库,但是在转换的过程中,如果 XML 参数的值中存在特殊字符,则 xmltodict 库的 parse() 方法内部会把特殊字符转义,导致加密完成后的参数校验失败。

实例

目前碰到的存在转义问题的特殊字符为 & ,当 XML 参数的值中包含 & 字符时,经过 xmltodict.parse() 方法转化为 json 后,会自动转义为& 导致之后的加密参数和一开始传入到方法中的 XML 不匹配。

目前的解决方法

因为是 Python 第三方库导致的转义问题,所以暂时没有找到其他的办法,只能在加密之前,把转义之后的 amp;字符串替换为空,可以暂时解决 & 特殊字符转义的问题。

求助

目前只能解决 & 特殊字符的问题,如果下一次出现其他字符转义的问题,还需要重新修改代码,请教一下社区的各位,有没有治本的办法?


↙↙↙阅读原文可查看相关链接,并与作者交流