解决json中ensure_ascii=False的问题
在使用json.dumps时要注意一个问题
>>>importjson
>>>printjson.dumps('中国')
"\u4e2d\u56fd"
输出的会是:'中国'中的ascii字符码,而不是真正的中文。
这是因为json.dumps序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False:
>>>importjson
>>>printjson.dumps('中国')
"\u4e2d\u56fd"
>>>printjson.dumps('中国',ensure_ascii=False)
"中国"
>>>
补充知识:pythonjson.loadsjson.dumps(ensure_ascii=False)汉字乱码问题解决
我们在post请求数据时,响应的内容是json数据,但是返回的json数据中文显示有问题,变成\uXXX的形式。这是因为中文以unicode编码了,而默认是以ASCII解析的,中文不在ASCII编码中,所以无法显示。
这时候我们可以用importjson然后调用json.loads()和json.dumps()来使中文正确显示。下面的代码(data是中文不能正常显示的json串,newjson是处理后中文正常显示的字符串)
importjson myjson=json.loads(data)#data是向api请求的响应数据,data必须是字符串类型的 newjson=json.dumps(myjson,ensure_ascii=False)#ensure_ascii=False就不会用ASCII编码,中文就可以正常显示了
以上这篇解决json中ensure_ascii=False的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。