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

 更新时间:2023年02月08日 15:47:13   作者:林新发  
这篇文章主要介绍了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)

而后,显示正常!

总结

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

相关文章

  • Python实现服务端渲染SSR的示例代码

    Python实现服务端渲染SSR的示例代码

    服务端渲染是一种常见的技术策略,特别是在需要改善网站的搜索引擎优化(SEO)和首屏加载时间的场景下,本文将介绍如何利用 Python 实现 SSR,感兴趣的可以了解下
    2024-02-02
  • 关于数据分析之滚动窗口pandas.DataFrame.rolling方法

    关于数据分析之滚动窗口pandas.DataFrame.rolling方法

    Pandas库中的rolling方法是数据处理中常用的功能,它允许用户对数据进行滚动窗口(滑动窗口)操作,通过指定窗口大小,可以使用不同的聚合函数对窗口内的数据进行计算,例如最大值、最小值、平均值、中位数等,此外,rolling方法还可以计算方差、标准差、偏度、峰度
    2024-09-09
  • python使用PyGame模块播放声音的方法

    python使用PyGame模块播放声音的方法

    这篇文章主要介绍了python使用PyGame模块播放声音的方法,实例分析了PyGame模块的使用技巧,需要的朋友可以参考下
    2015-05-05
  • Python导入父文件夹中模块并读取当前文件夹内的资源

    Python导入父文件夹中模块并读取当前文件夹内的资源

    这篇文章主要给大家介绍了关于Python导入父文件夹中模块并读取当前文件夹内资源的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python进程间通信 multiProcessing Queue队列实现详解

    Python进程间通信 multiProcessing Queue队列实现详解

    这篇文章主要介绍了python进程间通信 mulitiProcessing Queue队列实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • django如何计算两个TimeField的时差

    django如何计算两个TimeField的时差

    在Django中,可以使用datetime模块来计算两个TimeField字段的时间差,下面通过示例代码介绍django 计算两个TimeField的时差,需要的朋友可以参考下
    2023-05-05
  • Python调用Pandas实现Excel读取

    Python调用Pandas实现Excel读取

    这篇文章主要为大家介绍了在Python中如何调用Pandas实现Excel文件的读取,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-04-04
  • python 删除列表里所有空格项的方法总结

    python 删除列表里所有空格项的方法总结

    下面小编就为大家分享一篇python 删除列表里所有空格项的方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 获取python文件扩展名和文件名方法

    获取python文件扩展名和文件名方法

    本篇文章通过python写一个获取python文件扩展名和文件名的功能,并分享了代码,有兴趣的参考下。
    2018-02-02
  • 带你认识Django

    带你认识Django

    今天小编就为大家分享一篇关于带你认识Django,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01

最新评论