python3解析json格式中文乱码

写在最前面:

 

工作中遇到json字符串返回结果。然后用dumps格式化了一下,结果中文就乱码了,其实也不是乱码,被转为了utf-8而已。

 "code": 1,
 "msg": "\u670d\u52a1\u5b9e\u4f8b\u7f16\u7801Nginx6789\u5df2\u5b58\u5728"

 

尝试直接decode,不行,报错

AttributeError: 'str' object has no attribute 'decode'

 

其实python3中对文本和二进制做了比较清晰的区分。python3默认编码为unicode,由str类型进行表示。二进制数据使用byte类型表示,所以不会将str和byte混在一起。

 

str--->(encode)--->bytes,bytes--->(decode)--->str

 

那么此时输出的类型竟然不是bytes,是str,自然不能直接decode了。

 

尝试

encode('utf-8').decode('utf-8')

还是不行,给个解决办法吧

encode('utf-8').decode('unicode_escape')

 

你可能感兴趣的:(python)