首页 > 技术文章 > pythonl输出的预警消息中的json串的中文展示乱码(中文的unicode码)

yoyoma0355 2018-06-26 10:22 原文

来源:ctrip
接口名称:ReviewStandartAPI
错误信息:[{'ReviewTime': u'\u63a5\u53e3\u8fd4\u56de\u7684\u70b9\u8bc4\u65f6\u95f4\u6233\u4e0d\u662f\u79d2\u7ea7\u768410\u4f4d\u30022194034227563614'}, {'ReviewTime': u'\u63a5\u53e3\u8fd4\u56de\u7684\u70b9\u8bc4\u65f6\u95f4\u6233\u4e0d\u662f\u79d2\u7ea7\u768410\u4f4d\u30022194034227563614'}, {'ReviewTime': u'\u63a5\u53e3\u8fd4\u56de\u7684\u70b9\u8bc4\u65f6\u95f4\u6233\u4e0d\u662f\u79d2\u7ea7\u768410\u4f4d\u30022194034227563614'}, {'ReviewTime': u'\u63a5\u53e3\u8fd4\u56de\u7684\u70b9\u8bc4\u65f6\u95f4\u6233\u4e0d\u662f\u79d2\u7ea7\u768410\u4f4d\u30022194034227563614'}, {'ReviewTime': u'\u63a5\u53e3\u8fd4\u56de\u7684\u70b9\u8bc4\u65f6\u95f4\u6233\u4e0d\u662f\u79d2\u7ea7\u768410\u4f4d\u30022194034227563614'}]

这里输出的中文全是unicode码,如何让其显示中文呢?

第一种方法:print res_content.decode('raw_unicode_escape')

第二种方汉:json.dumps( res_conten,ensure_ascii=False)

 

可是这两种方法都是打印时能看到中文,但写到预警邮件里就不是了。为什么呢?

后来发现,我消费1000条数据,每条数据发现的问题都存储在list里,改成存储在dict中就可以了。

 

for items in data["errorMSG"]:
print json.dumps(items).decode("unicode-escape")
content[u"错误信息"] = json.dumps(items).decode("unicode-escape")

所有错误存储在dict中就能正确展示中文了。
格式如下:
来源:ctrip
接口名称:ReviewStandartAPI
错误信息:
{
    '101109': {
        'ReviewTime': u'\u63a5\u53e3\u8fd4\u56de\u7684\u70b9\u8bc4\u65f6\u95f4\u6233\u4e0d\u662f\u79d2\u7ea7\u768410\u4f4d\u30022199734227563563'
    },
    '101110': {
        'ReviewTime': u'\u63a5\u53e3\u8fd4\u56de\u7684\u70b9\u8bc4\u65f6\u95f4\u6233\u4e0d\u662f\u79d2\u7ea7\u768410\u4f4d\u30022199734227563563'
    }
}

 

推荐阅读