网络编程
位置:首页>> 网络编程>> Python编程>> 解决json中ensure_ascii=False的问题

解决json中ensure_ascii=False的问题

作者:XCCS_澍  发布时间:2023-01-04 10:49:11 

标签:json,ensure,ascii,False

在使用json.dumps时要注意一个问题


>>> import json
>>> print json.dumps('中国')
"\u4e2d\u56fd"

输出的会是:'中国' 中的ascii 字符码,而不是真正的中文。

这是因为json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False:


>>> import json
>>> print json.dumps('中国')
"\u4e2d\u56fd"
>>> print json.dumps('中国',ensure_ascii=False)
"中国"
>>>

补充知识:python json.loads json.dumps(ensure_ascii = False) 汉字乱码问题解决

我们在post请求数据时,响应的内容是json数据,但是返回的json数据中文显示有问题,变成 \uXXX的形式。这是因为中文以 unicode 编码了,而默认是以ASCII解析的,中文不在ASCII编码中,所以无法显示。

这时候我们可以用 import json 然后调用json.loads() 和json.dumps()来使中文正确显示。 下面的代码(data是中文不能正常显示的json串,newjson是处理后中文正常显示的字符串)


import json
myjson=json.loads(data) #data是向 api请求的响应数据,data必须是字符串类型的
newjson=json.dumps(myjson,ensure_ascii=False) #ensure_ascii=False 就不会用 ASCII 编码,中文就可以正常显示了

来源:https://blog.csdn.net/u011692780/article/details/81605355

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com