python3 json.dumps 中文乱码问题

2024-01-23 09:38

本文主要是介绍python3 json.dumps 中文乱码问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

json.dumps 使用的ascii编码。
输出中文需要指定ensure_ascii=False

test_dic = {'a': '测', 'b': 'abc'}print(test_dic)
# {'a': '测', 'b': 'abc'}print(str(test_dic))
# {'a': '测', 'b': 'abc'}
print(str(test_dic).replace('测', '测试'))
# {'a': '测试', 'b': 'abc'}
# print(json.loads(str(test_dic)))  # json.loads只认双引号
"""
Traceback (most recent call last):File "C:/xll/代码/xz/other/create.py", line 29, in <module>print(json.loads(str(test_dic)))File "C:\Python36\lib\json\__init__.py", line 354, in loadsreturn _default_decoder.decode(s)File "C:\Python36\lib\json\decoder.py", line 339, in decodeobj, end = self.raw_decode(s, idx=_w(s, 0).end())File "C:\Python36\lib\json\decoder.py", line 355, in raw_decodeobj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
"""
print(json.loads(str(test_dic).replace('测', '测试')))
"""
Traceback (most recent call last):File "C:/xll/代码/xz/other/create.py", line 29, in <module>print(json.loads(str(test_dic)))File "C:\Python36\lib\json\__init__.py", line 354, in loadsreturn _default_decoder.decode(s)File "C:\Python36\lib\json\decoder.py", line 339, in decodeobj, end = self.raw_decode(s, idx=_w(s, 0).end())File "C:\Python36\lib\json\decoder.py", line 355, in raw_decodeobj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
"""print(json.dumps(test_dic))
# {"a": "\u6d4b", "b": "abc"}
print(json.dumps(test_dic).replace('测', '测试'))  #  不识别中文
# {"a": "\u6d4b", "b": "abc"}
print(json.loads(json.dumps(test_dic).replace('测', '测试')))
# {'a': '测', 'b': 'abc'}print(json.dumps(test_dic, ensure_ascii=False))
# {"a": "测", "b": "abc"}
print(json.dumps(test_dic, ensure_ascii=False).replace('测', '测试'))  # 识别中文
# {"a": "测试", "b": "abc"}
print(json.loads(json.dumps(test_dic, ensure_ascii=False)))
# {'a': '测', 'b': 'abc'}
print(json.loads(json.dumps(test_dic, ensure_ascii=False).replace('测', '测试')))
# {'a': '测试', 'b': 'abc'}

参考:
https://zhuanlan.zhihu.com/p/37504880
https://www.cnblogs.com/biangbiang/archive/2013/02/19/2916780.html

这篇关于python3 json.dumps 中文乱码问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/635985

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec