当前位置:主页 > python教程 > python使用json.dumps输出中文

python使用json.dumps输出中文问题

发布:2023-04-15 15:50:01 59


本站收集了一篇相关的编程文章,网友戴乐之根据主题投稿了本篇教程内容,涉及到python使用json.dumps、json.dumps输出中文、python json.dumps、python使用json.dumps输出中文相关内容,已被482网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

python使用json.dumps输出中文

使用json.dumps输出中文

在使用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.dumps()中文乱码

有一段代码如下:

        def save_data(self,data):
            print(data)
            #ensure_ascii=False
            data=json.dumps(data)
            print(data)
            with open('ljd.json',mode='w',encoding='utf-8') as f:
                f.write(data)

date在传递进来之前是字典格式数据,现在为了能保存到文件中,因此用json.dumps(data)来将字典数据转换为json字符串,但是转换以后前后显示就有问题了,如下:

发现转换以后,中文乱码了。

原因:json.dumps 序列化时默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False:更深入分析,是应为dJSON object 不是单纯的unicode实现,而是包含了混合的unicode编码以及已经用utf-8编码之后的字符串。

更改如下:

        def save_data(self,data):
            print(data)
            #ensure_ascii=False
            data=json.dumps(data,ensure_ascii=False)
            print(data)
            with open('ljd.json',mode='w',encoding='utf-8') as f:
                f.write(data)

而后,显示正常!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持码农之家。


参考资料

相关文章

网友讨论