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)
而后,显示正常!
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
关于数据分析之滚动窗口pandas.DataFrame.rolling方法
Pandas库中的rolling方法是数据处理中常用的功能,它允许用户对数据进行滚动窗口(滑动窗口)操作,通过指定窗口大小,可以使用不同的聚合函数对窗口内的数据进行计算,例如最大值、最小值、平均值、中位数等,此外,rolling方法还可以计算方差、标准差、偏度、峰度2024-09-09Python进程间通信 multiProcessing Queue队列实现详解
这篇文章主要介绍了python进程间通信 mulitiProcessing Queue队列实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-09-09
最新评论