出现场景
一、json.dumps()后
原因:
Python 3中的json在做dumps()操作时,会将中文转换成unicode编码,并以16进制方式存储,再做loads()逆向操作时,会将unicode编码转换回中文,因此json.dumps操作后,得到的字符串是\uXXXX。
解决:
json.dumps()有一个ensure_ascii参数,当它为True的时候,所有非ASCII码字符显示为\uXXXX序列。在dump时将ensure_ascii设置为False,此时存入json的中文可正常显示。
json.dumps(dic, ensure_ascii=False)
二、爬虫爬取到的数据格式是这样
解决方法:json.dumps(dic).decode("unicode_escape")
使用方式
例一:
import json
a = [{u'mobile': u'8973', u'userName': u'\u7528\u6237\u540d', u'idCard': u'110222196308253111', u'roleFlag': 7}]
print json.dumps(a).decode("unicode_escape")
输出结果是:
[{"mobile": "8973", "userName": "用户名", "idCard": "110222196308253111", "roleFlag": 7}]
例二:
aa = u'\u7528\u6237\u540d'
print json.dumps(aa).decode("unicode_escape")
输出结果:
"用户名"