python json模块出现Invalid control character这个异常的原因
今天在查看日志的时候,发现一个问题,觉得很奇怪,跑了一个多月的代码突然报错了,还是个没见过的错误。
所以今晚抽空记录下。
一、重现错误
说好的传过来的数据是json格式的呢?怎么会突然报错了呢?
二、抓取错误数据
然后就把这条报错的数据,打印出来看下是什么样的数据。
不能直接在代码里测试这个不规范的json数据,因为不符合代码规范会直接报错,所以我这里起了一个服务,用postman模拟数据发送。
如下图:
现在错误很明显,是由于发送过来的数据不规范导致的
三、网上查找相关资料
谷歌一下:
加上参数strict=False即可
结果:
当我们知道数据错在哪里之后,其实可以在json.loads之前就转化为规范的json数据,但是很多时候我们是不知道数据什么时候会出问题的,也不知道出什么样的问题,
所以直接加上strict=False是最好的选择。