本文作者:云初冀北

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

python使用json.dumps输出中文问题摘要: 使用json.dumps输出中文在使用json.dumps时要注意一个问题˃˃˃ import json˃˃˃ print(json.dumps('中国'))"\u4e2d\u56...

使用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字符串,但是转换以后前后显示就有问题了,如下:

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

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

原因: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)

而后,显示正常!

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持云初冀北。

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:Goliszhou@gmail.com
$

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,70人围观)参与讨论

还没有评论,来说两句吧...