您的位置:首页 > 编程语言 > Python开发

Python下调用json.dumps中文显示问题及解决办法

2016-10-19 17:21 666 查看

问题描述

今天写了一个python脚本,所有编码默认utf-8,通过json.dumps转为json,结果使用print打印出来,打印结果的中文字符一直显示为\xxxxx\xxxxx

原因

找个半天终于发现了问题所在:

$ help('json')

从中发现以下说明:
|  __init__(self, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, encoding='utf-8', default=None)
…………

|      If *ensure_ascii* is true (the default), all non-ASCII
|      characters in the output are escaped with \uXXXX sequences,
|      and the results are str instances consisting of ASCII
|      characters only.  If ensure_ascii is False, a result may be a
|      unicode instance.  This usually happens if the input contains
|      unicode strings or the *encoding* parameter is used.


说明json.dumps默认把所有中文字符转为了ascii,而我们使用的是utf-8,所以print出来中文不对

解决方法

为调用的json.dumps方法加入ensure_ascii=False参数就OK了,如下所示

$ json.dumps({"data": data}, ensure_ascii=False, indent=2)


{
"data": [
{
"{#REALURL}": "测试_xxx"
},
{
"{#REALURL}": "测试_xxx"
},
.
.
.
]
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python json