[转]python json.dumps 中的ensure_ascii 参数引起的中文编码

本文转自: 梁小白博客(http://biangbiang.cnblogs.com)
在使用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)
    中国

原文地址:https://www.cnblogs.com/everfight/p/ensure_ascii.html

时间: 2024-10-12 16:13:40

[转]python json.dumps 中的ensure_ascii 参数引起的中文编码的相关文章

python json.dumps 中的ensure_ascii 参数引起的中文编码问题

在使用json.dumps时要注意一个问题 >>> import json >>> print json.dumps('中国') "\u4e2d\u56fd" 输出的会是 '中国' 中的ascii 字符码,而不是真正的中文. 这是因为json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False: >>> import json >>> print jso

JMeter用BeanShell获取复杂的JSON串中的某个参数的值

大家好,这篇博文中主要是介绍怎么用JMeter的BeanShell去获取复杂的JSON串中的某个参数的值,这将 便于我们用JMeter做出更完美的自动化测试: 首先有这样一个json串,如下图所示: 如上图中,画红框的部分,参数xsddbh(111807200000645300)的值可知,在下一个接口请求中,需要用到上图中的参数 cpbh(1532048096286)的值,然而参数xsddbh在json串中的每个list都有,那么这时候怎么办呢?在这里我将用alibaba.fastjson 这个

python json.dumps()函数输出json格式,使用ensure_ascii参数对中文输入的支持

在python使用过程中,输入中文,不能正常的输出,可以使用ensure_ascii参数来解决不能输入中文的问题 代码块: import json friends={"name":"王虎","name1":"张二","name2":"姚晨"}print(json.dumps(friends)) 执行结果: 输出的中文是中文的ascii 字符码,而不是真正的中文. 这是因为json.dum

Python Json模块中dumps、loads、dump、load函数介绍

1.json.dumps() json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数. import json name = {'a': 'zhangsan', 'b': 'lisi', 'c': 'mawu', 'd': 'zhaoliu'} jsDumps = json.dumps(name) print(name,'类型为:%s'%type(name)) print(jsDumps,'类型为

python json.dumps() json.dump()的区别

首先说明基本功能: dumps是将dict转化成str格式,loads是将str转化成dict格式. dump和load也是类似的功能,只是与文件操作结合起来了. 看代码实例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 In [1]: import json In [2]: a = {'name': 'wang', 'age': 29} In [3]: b = json.dumps(a) In [4]: print b, type(b) {"age": 29, 

python json.dumps() 中文乱码问题

python 输出一串中文字符,在控制台上(控制台使用UTF-8编码)通过print 可以正常显示,但是写入到文件中之后,中文字符都输出成ascii编码了.英文字符能正常显示可读字符. 原因:json.dumps 序列化时默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False:更深入分析,是应为dJSON object 不是单纯的unicode实现,而是包含了混合的unicode编码以及已经用utf-8编码之后的字符串. 可行的方式如下: 1 import os

Python json.dumps 特殊数据类型的自定义序列化操作

场景描述: Python标准库中的json模块,集成了将数据序列化处理的功能:在使用json.dumps()方法序列化数据时候,如果目标数据中存在datetime数据类型,执行操作时, 会抛出异常:TypeError: datetime.datetime(2016, 12, 10, 11, 04, 21) is not JSON serializable 那么遇到json.dumps序列化不支持的数据类型,该怎么办! 首先,我们先来了解一下,json.dumps,序列化操作默认支持的数据类型:

Python json.dumps 中文乱码解决

需要对外提供一个接口,输出的内容里有中文.结果打开一看,返回的是这么一串东西. "owner": "\u8d75\u7acb\u5792" 其实,这是用ASCII输出的转义字符,解决起来很简单.json.dumps方法有一个ensure_ascii方法,设为False即可,默认为True.加上encoding="utf-8",用utf8来encode中文. 调用方法 json.dumps(mydata, ensure_ascii=False, e

第8月第12天 python json.dumps

1.json.dumps return JsonResponse({ 'status': WechatMessage.POST_METHOD_REQUIRED[1], 'status_code': WechatMessage.POST_METHOD_REQUIRED[0] }) import json from django.shortcuts import HttpResponse def JsonResponse(params): return HttpResponse(json.dumps