广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python json.dumps中文乱码问题解决
  • 615
分享到

python json.dumps中文乱码问题解决

2024-04-02 19:04:59 615人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

JSON.dumps(var,ensure_ascii=False)并不能完全解决中文乱码的问题 json.dumps在不同版本的python下会有不同的表现, 注意下面提到的中文乱

JSON.dumps(var,ensure_ascii=False)并不能完全解决中文乱码的问题

json.dumps在不同版本的python下会有不同的表现, 注意下面提到的中文乱码问题在python3版本中不存在。

注:下面的代码再Python 2.7版本下测试通过


# -*- coding: utf-8 -*-odata = {'a' : '你好'}print odata

结果:


{'a': '\xe4\xbd\xa0\xe5\xa5\xbd'}

print json.dumps(odata)

结果:


{"a": "\u4f60\u597d"}

print json.dumps(odata,ensure_ascii=False)

结果:


{"a": "浣犲ソ"}

print json.dumps(odata,ensure_ascii=False).decode('utf8').encode('gb2312')

结果:


{"a": "你好"}

要解决中文编码,需要知道python2.7对字符串是怎么处理的:

由于# -- coding: utf-8 --的作用,文件内容以utf-8编码,所以print odata 

输出的是utf-8编码后的结果


{‘a': ‘\xe4\xbd\xa0\xe5\xa5\xbd'}

json.dumps 序列化时对中文默认使用的ascii编码, print json.dumps(odata)输出unicode编码的结果

print json.dumps(odata,ensure_ascii=False)不使用的ascii编码,以gbk编码 

‘你好' 用utf8编码是 %E4%BD%A0%E5%A5%BD 用gbk解码是 浣犲ソ

字符串在Python内部的表示是unicode编码。

因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

decode的作用是将其他编码的字符串转换成unicode编码

decode('utf-8')表示将utf-8编码的字符串转换成unicode编码。

encode的作用是将unicode编码转换成其他编码的字符串

encode(‘gb2312')表示将unicode编码的字符串转换成gb2312编码。

python3中没有这种问题,所以最简单的方法是引入__future__模块,把新版本的特性导入到当前版本


from __future__ import unicode_literalsprint json.dumps(odata,ensure_ascii=False)

结果:


{"a": "你好"}

在写入文件的时候出现了Python2.7的UnicodeEncodeError: ‘ascii' codec can't encode异常错误

大神的解决方法: 

不使用open打开文件,而使用codecs:


from __future__ import unicode_literalsimport codecsfp = codecs.open('output.txt', 'a+', 'utf-8')fp.write(json.dumps(m,ensure_ascii=False))fp.close()

更多关于python 输出中文乱码问题请查看下面的相关链接

--结束END--

本文标题: python json.dumps中文乱码问题解决

本文链接: https://www.lsjlt.com/news/125139.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python json.dumps中文乱码问题解决
    json.dumps(var,ensure_ascii=False)并不能完全解决中文乱码的问题 json.dumps在不同版本的Python下会有不同的表现, 注意下面提到的中文乱...
    99+
    2022-11-12
  • python中文编码乱码问题的解决
    目录前言:一、什么是字符编码。1.ASCII2.GB23123.Unicode4.UTF-8二、Python2中的字符编码三、decode()与encode()方法四、一个字符编码的...
    99+
    2022-11-12
  • python如何解决中文编码乱码问题
    小编给大家分享一下python如何解决中文编码乱码问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、什么是字符编码。要彻底解决字符编码的问题就不能不去了解到底...
    99+
    2023-06-25
  • 解决python中文乱码问题方法总结
    在运行这样类似的代码: #!/usr/bin/env pythons="中文"print s 最近经常遇到这样的问题: 问题一: SyntaxError: Non-ASCII character '\xe4'...
    99+
    2022-06-02
    python中文乱码 python decode python encode
  • 解决Springboot-application.properties中文乱码问题
    目录Springboot-application.properties中文乱码设置application.properties为utf-8读取配置的中文结果打印分析Springboo...
    99+
    2022-11-12
  • python使用json.dumps输出中文问题
    目录使用json.dumps输出中文Python json.dumps()中文乱码总结使用json.dumps输出中文 在使用json.dumps时要注意一个问题 >>&...
    99+
    2023-02-08
    python使用json.dumps json.dumps输出中文 python json.dumps
  • PHP怎么解决中文乱码问题
    这篇文章主要介绍“PHP怎么解决中文乱码问题”,在日常操作中,相信很多人在PHP怎么解决中文乱码问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP怎么解决中文乱码问题”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-17
  • php.ini如何解决中文乱码问题
    本篇内容主要讲解“php.ini如何解决中文乱码问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php.ini如何解决中文乱码问题”吧!php.ini解决中文乱码的方法:首先打开php.ini...
    99+
    2023-06-20
  • MySQL中文乱码问题解决方案
    linux 中 MySQL 出现中文乱码问题如下操作 编辑vi /etc/my.cnf 文件,添加图中标记三行 [client] default-character-set=utf8 [mysqld] chara...
    99+
    2022-05-17
    MySQL 中文乱码
  • ajax中文乱码问题怎么解决
    本篇内容主要讲解“ajax中文乱码问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ajax中文乱码问题怎么解决”吧! a...
    99+
    2022-10-19
  • 如何解决AJAX中文乱码问题
    本篇内容介绍了“如何解决AJAX中文乱码问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • 如何解决ubuntu16.04中文乱码问题
    解决ubuntu16.04中文乱码的方法:1、在ubuntu终端命令行中使用“apt-get install language-pack-zh-hans”命令安装好中文语言包;2、在bash.bashrc配置文件中写入“export LC_...
    99+
    2022-10-19
  • 解决IDEA的Terminal中文乱码问题
    当我提交项目输入中文描述信息的时候,发现IDEA 的 Terminal无法显示中文信息,显示的是下面这样的 因为我的终端设置了git.bash窗口,所以我以为是git乱码问题,我打...
    99+
    2022-11-12
  • 解决Git Bash中文乱码的问题
    方法一 一、桌面右击,点击“Git Bash Here” 二、在弹出的黑窗口,右击,选择“options” 三、在弹出的窗口,选择...
    99+
    2022-11-13
  • php如何解决中文乱码问题
    小编给大家分享一下php如何解决中文乱码问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php解决中文乱码的方法:1、在head标签里面加入UTF8编码;2、在...
    99+
    2023-06-07
  • 怎么解决Suse中文乱码问题
    怎么解决Suse中文乱码问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。随着我们学习Suse linux的深入,我们也面临着很多问题,今天所要讲的是Suse中文乱码问题,Su...
    99+
    2023-06-17
  • jsp中文乱码问题怎么解决
    这篇文章主要介绍“jsp中文乱码问题怎么解决”,在日常操作中,相信很多人在jsp中文乱码问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jsp中文乱码问题怎么解决”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-30
  • mysql5.5中文乱码问题如何解决
    本篇内容介绍了“mysql5.5中文乱码问题如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!查看MySQL的字符集show ...
    99+
    2023-06-30
  • MYSQL中文乱码问题如何解决
    这篇文章主要介绍了MYSQL中文乱码问题如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MYSQL中文乱码问题如何解决文章都会有所收获,下面我们一起来看看吧。一、乱码的原因: client客户端的编码不是...
    99+
    2023-07-02
  • 怎么解决FireFTP中文乱码问题
    怎么解决FireFTP中文乱码问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。FireFTP是一个Firefox浏览器插件,用Firefox浏览器的人肯定知道,但是在用的时候...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作