Django 接收到body后 json.loads() 报编码错误 且在报错之前打印body为空

2023-01-07,,,,

python版本 3.7.5

Django版本 3.2.5

猜测可能是Django版本的问题,因为之前并没有出现过如此奇葩的问题。

body = request.body.decode('utf-8')

bodydict = json.loads(body)

接口请求后会报错(body中传递的是json),以为传递的数据有问题于是在接收到body之后打印出来打算看下

print(type(request.body),request.body)

然后什么都打印不出来 json.loads 依然继续报错

后来加了异常捕获之后,报错莫名其妙没有了,并且可以正常执行!!!!

1 body = request.body.decode('utf-8')
2 try:
3 bodydict = json.loads(body)
4 except BaseException as error:
5 print(error,body)

原意是想通过异常捕获看看下报错信息和是否能打印出body

但是奇怪的发现代码正常执行,没有任何任何异常。json.loads莫名其妙的成功了

多次反复测试发现,body在json.loads的时候必须放到try里边

在下才疏学浅并不是很明白这是什么原因导致的

希望屌大的看到后能告知具体原因

Django 接收到body后 json.loads() 报编码错误 且在报错之前打印body为空的相关教程结束。

《Django 接收到body后 json.loads() 报编码错误 且在报错之前打印body为空.doc》

下载本文的Word格式文档,以方便收藏与打印。